/// <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)); }
/// <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); }