Exemplo n.º 1
0
        /// <summary>Simple logger. Logs the specified message.</summary>
        /// <param name="ex">The ex.</param>
        /// <param name="logType">Type of the log.</param>
        /// <param name="detail">The detail.</param>
        /// <param name="lineNumber">The line number.</param>
        /// <param name="caller">The caller.</param>
        /// <param name="filepath">The filepath.</param>
        /// <returns></returns>
        public string LogMessage(Exception ex, enLogger_DetailLevel detail = enLogger_DetailLevel.Application,
                                 [CallerLineNumber] int lineNumber         = 0,
                                 [CallerMemberName] string caller          = null,
                                 [CallerFilePath] string filepath          = "")
        {
            string logFile;

            return(LogMessage(ex.Message, out logFile, ex, enLogger_MsgType.Error, detail, lineNumber, caller, filepath));
        }
Exemplo n.º 2
0
        /// <summary>Simple logger. Logs the specified message.</summary>
        /// <param name="message">The message.</param>
        /// <param name="logFile">The log file.</param>
        /// <param name="ex">The ex.</param>
        /// <param name="logType">Type of the log.</param>
        /// <param name="detail">The detail.</param>
        /// <param name="lineNumber">The line number.</param>
        /// <param name="caller">The caller.</param>
        /// <param name="filepath">The filepath.</param>
        /// <returns></returns>
        public string LogMessage(string message, out string logFile, Exception ex = null, enLogger_MsgType logType = enLogger_MsgType.Info, enLogger_DetailLevel detail = enLogger_DetailLevel.Application,
                                 [CallerLineNumber] int lineNumber = 0,
                                 [CallerMemberName] string caller  = null,
                                 [CallerFilePath] string filepath  = "")
        {
            string timeStr;

            logFile = _lamed.lib.IO.File.Filename_Logging(out timeStr);
            var    exceptionList = "";
            var    stacktrace    = "";
            string source        = "";

            if (ex != null)
            {
                // There was an exception, lets log more information
                source  = $"  // Method:'{caller}()' at line {lineNumber} in file: '{filepath}'".NL();
                logType = enLogger_MsgType.Error;
                var line       = "--------------------------------------------------".NL();
                var exceptions = InnerExceptions_AsStr(ex);
                exceptionList = line + exceptions.NL() + line + ex.ToString().NL() + line;
                stacktrace    = "" + ex.StackTrace;
                if (stacktrace != "")
                {
                    stacktrace += "".NL();
                }
            }

            var msg = $"[{timeStr}] #{logType}# " + message.NL() + source + exceptionList + stacktrace + "=========================================================".NL();

            if (_logger == null)
            {
                throw new InvalidOperationException("Error! Memory lock is not assigned.");
            }
            _lamed.lib.IO.RW.File_Append(logFile, msg, _logger);
            return(msg);
        }