private void logger_OnLog(LogItem logItem) { string printed = PMSLogPrinter.PrintLogItem(logItem, obj => JsonConvert.SerializeObject(obj, Formatting.Indented)); }
public static string PrintLogItem(LogItem logItem, Func<object, string> serializeParametersFunc) { string logLevelLine = null; if (logItem.OriginalLogLevel != logItem.LogLevel) { logLevelLine = string.Format("[{0}]", logItem.OriginalLogLevel.ToString().ToUpper()) + Environment.NewLine; } string refLine = null; if (logItem.Reference != null) { refLine = "Reference: " + logItem.Reference + Environment.NewLine; } string headerLine = null; if (logItem.Header != null) { headerLine = logItem.Header + Environment.NewLine; } string parametersLine = null; if (logItem.Parameters != null && serializeParametersFunc != null) { parametersLine = serializeParametersFunc(logItem.Parameters) + Environment.NewLine;// JsonConvert.SerializeObject(logItem.Parameters, Formatting.Indented); } string knownSolutionLine = null; if (logItem.KnownSolution != null && serializeParametersFunc != null) { knownSolutionLine = "Suggested solution: " + serializeParametersFunc(logItem.KnownSolution) + Environment.NewLine; //JsonConvert.SerializeObject(logItem.KnownSolution, Formatting.Indented); } string messageLine = null; if (logItem.Message != null) { messageLine = logItem.Message + Environment.NewLine; } string exLine = null; if (logItem.Exception != null) { exLine = "Exception: " + Environment.NewLine + logItem.Exception.ToString() + Environment.NewLine; } string fileLine = null; if (logItem.File != null) { fileLine = "File: " + logItem.File + Environment.NewLine; } string lineNumberLine = null; if (logItem.LineNumber != 0) { fileLine += "Line number: " + logItem.LineNumber + Environment.NewLine; } string printed = messageLine + parametersLine + knownSolutionLine + exLine + Environment.NewLine + fileLine + lineNumberLine + refLine + headerLine; string debugLogLevelLine = "[" + logItem.LogLevel.ToString().ToUpper() + "] " + Environment.NewLine; System.Diagnostics.Debug.WriteLine(debugLogLevelLine + printed + Environment.NewLine + "---------------" + Environment.NewLine); return printed; }
private void PostLogItem(string message, Exception e, LogLevel logLevel, object parameters, object knownSolution, int lineNumber, string filePath) { var logItem = new LogItem(Header, message, Reference, e, GetActualLogLevel(logLevel), logLevel, parameters, knownSolution, filePath, lineNumber); if (_onLog != null) { _onLog(logItem); } }