public void Append(IObjectWriter writer, SemanticLogLevel logLevel) { writer.WriteObject("app", w => w .WriteProperty("name", applicationName) .WriteProperty("version", applicationVersion) .WriteProperty("sessionId", applicationSessionId)); }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel, Exception?exception) { if (exception != null && exception is not DomainException) { logger.Log(exception, httpContextWrapper); } }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel, Exception?exception) { var httpContext = httpContextAccessor.HttpContext; if (string.IsNullOrEmpty(httpContext?.Request?.Method)) { return; } var requestId = GetRequestId(httpContext); var logContext = (requestId, context : httpContext, actionContextAccessor); writer.WriteObject("web", logContext, (ctx, w) => { w.WriteProperty("requestId", ctx.requestId); w.WriteProperty("requestPath", ctx.context.Request.Path); w.WriteProperty("requestMethod", ctx.context.Request.Method); var actionContext = ctx.actionContextAccessor.ActionContext; if (actionContext != null) { w.WriteObject("routeValues", actionContext.ActionDescriptor.RouteValues, (routeValues, r) => { foreach (var(key, value) in routeValues) { r.WriteProperty(key, value); } });
private void LogFormattedText(SemanticLogLevel logLevel, string formattedText) { List <Exception>?exceptions = null; for (var i = 0; i < channels.Length; i++) { try { channels[i].Log(logLevel, formattedText); } catch (Exception ex) { if (exceptions == null) { exceptions = new List <Exception>(); } exceptions.Add(ex); } } if (exceptions != null && exceptions.Count > 0) { throw new AggregateException("An error occurred while writing to logger(s).", exceptions); } }
public TimeMeasurer(ISemanticLog log, SemanticLogLevel logLevel, Action <IObjectWriter> objectWriter) { this.logLevel = logLevel; this.log = log; this.objectWriter = objectWriter; }
private static string GetSeverity(SemanticLogLevel logLevel) { switch (logLevel) { case SemanticLogLevel.Trace: return("DEBUG"); case SemanticLogLevel.Debug: return("DEBUG"); case SemanticLogLevel.Information: return("INFO"); case SemanticLogLevel.Warning: return("WARNING"); case SemanticLogLevel.Error: return("ERROR"); case SemanticLogLevel.Fatal: return("CRITICAL"); default: return("DEFAULT"); } }
private string FormatText(SemanticLogLevel logLevel, Exception?exception, LogFormatter action) { var writer = writerFactory.Create(); try { writer.Start(); writer.WriteProperty(nameof(logLevel), logLevel.ToString()); action(writer); for (var i = 0; i < appenders.Length; i++) { appenders[i].Append(writer, logLevel, exception); } writer.WriteException(exception); return(writer.End()); } finally { writerFactory.Release(writer); } }
public void Log(SemanticLogLevel logLevel, Action <IObjectWriter> action) { Guard.NotNull(action, nameof(action)); var formattedText = FormatText(logLevel, action); List <Exception> exceptions = null; foreach (var channel in channels) { try { channel.Log(logLevel, formattedText); } catch (Exception ex) { if (exceptions == null) { exceptions = new List <Exception>(); } exceptions.Add(ex); } } if (exceptions != null && exceptions.Count > 0) { throw new AggregateException("An error occurred while writing to logger(s).", exceptions); } }
public void Log <T>(SemanticLogLevel logLevel, T context, Action <T, IObjectWriter> action) { Guard.NotNull(action, nameof(action)); var formattedText = FormatText(logLevel, context, action); LogFormattedText(logLevel, formattedText); }
public void Log <T>(SemanticLogLevel logLevel, T context, Action <T, IObjectWriter> action) { Guard.NotNull(action); if (logLevel < options.Value.Level) { return; } var formattedText = FormatText(logLevel, context, action); LogFormattedText(logLevel, formattedText); }
public void Log <T>(SemanticLogLevel logLevel, T context, Exception?exception, LogFormatter <T> action) { Guard.NotNull(action); if (logLevel < options.Value.Level) { return; } var formattedText = FormatText(logLevel, context, exception, action); LogFormattedText(logLevel, formattedText); }
public void Log(SemanticLogLevel logLevel, Exception?exception, LogFormatter action) { Guard.NotNull(action, nameof(action)); if (logLevel < options.Value.Level) { return; } var formattedText = FormatText(logLevel, exception, action); LogFormattedText(logLevel, formattedText); }
public void WriteLine(SemanticLogLevel level, string message) { if (level >= SemanticLogLevel.Error) { Console.ForegroundColor = ConsoleColor.Red; Console.Error.WriteLine(message); Console.ResetColor(); } else { Console.Out.WriteLine(message); } }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel, Exception exception) { try { if (exception != null && exception is not DomainException && exception is not OperationCanceledException) { logger.Log(exception, httpContextWrapper); } } catch { return; } }
private string FormatText(SemanticLogLevel logLevel, Action <IObjectWriter> objectWriter) { var writer = writerFactory(); writer.WriteProperty(nameof(logLevel), logLevel.ToString()); objectWriter(writer); foreach (var appender in appenders) { appender.Append(writer); } return(writer.ToString()); }
private static IDisposable Measure <T>(this ISemanticLog log, SemanticLogLevel logLevel, T context, Action <T, IObjectWriter> objectWriter) { var watch = ValueStopwatch.StartNew(); return(new DelegateDisposable(() => { var elapsedMs = watch.Stop(); log.Log(logLevel, (Context: context, elapsedMs), (ctx, w) => { objectWriter?.Invoke(ctx.Context, w); w.WriteProperty("elapsedMs", elapsedMs); }); })); }
private static IDisposable Measure(this ISemanticLog log, SemanticLogLevel logLevel, Action <IObjectWriter> objectWriter) { var watch = ValueStopwatch.StartNew(); return(new DelegateDisposable(() => { var elapsedMs = watch.Stop(); log.Log(logLevel, writer => { objectWriter?.Invoke(writer); writer.WriteProperty("elapsedMs", elapsedMs); }); })); }
public void Log(SemanticLogLevel logLevel, string message) { var color = 0; if (logLevel == SemanticLogLevel.Warning) { color = 0xffff00; } else if (logLevel >= SemanticLogLevel.Error) { color = 0xff0000; } processor.EnqueueMessage(new LogMessageEntry { Message = message, Color = color }); }
public void WriteLine(SemanticLogLevel level, string message) { if (level >= SemanticLogLevel.Error) { outputBuilder.Append("\x1B[1m\x1B[31m"); outputBuilder.Append(message); outputBuilder.Append("\x1B[39m\x1B[22m"); outputBuilder.AppendLine(); Console.Error.Write(outputBuilder.ToString()); } else { Console.Out.Write(outputBuilder.ToString()); } outputBuilder.Clear(); }
public void Log(SemanticLogLevel logLevel, string message) { if (!isInitialized) { lock (lockObject) { if (!isInitialized) { processor.Initialize(); isInitialized = true; } } } processor.EnqueueMessage(new LogMessageEntry { Message = message }); }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel) { var httpContext = httpContextAccessor.HttpContext; if (string.IsNullOrEmpty(httpContext?.Request?.Method)) { return; } Guid requestId; if (httpContext.Items.TryGetValue(nameof(requestId), out var requestIdvalue) && requestIdvalue is Guid requestIdValue) { requestId = requestIdValue; } else { httpContext.Items[nameof(requestId)] = requestId = Guid.NewGuid(); } var logContext = (requestId, context : httpContext, actionContextAccessor); writer.WriteObject("web", logContext, (ctx, w) => { w.WriteProperty("requestId", ctx.requestId.ToString()); w.WriteProperty("requestPath", ctx.context.Request.Path); w.WriteProperty("requestMethod", ctx.context.Request.Method); var actionContext = ctx.actionContextAccessor.ActionContext; if (actionContext != null) { w.WriteObject("routeValues", actionContext.ActionDescriptor.RouteValues, (routeValues, r) => { foreach (var kvp in routeValues) { r.WriteProperty(kvp.Key, kvp.Value); } }); } }); }
private string FormatText <T>(SemanticLogLevel logLevel, T context, Action <T, IObjectWriter> objectWriter) { var writer = writerFactory.Create(); try { writer.WriteProperty(nameof(logLevel), logLevel.ToString()); objectWriter(context, writer); for (var i = 0; i < appenders.Length; i++) { appenders[i].Append(writer, logLevel); } return(writer.ToString()); } finally { writerFactory.Release(writer); } }
public void Log(SemanticLogLevel logLevel, string message) { processor.EnqueueMessage(new LogMessageEntry { Message = message, Level = logLevel }); }
public void Log(SemanticLogLevel logLevel, Action <IObjectWriter> action) { LogCount++; }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel, Exception?exception) { writer.WriteProperty(nameof(category), category); }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel, Exception?exception) { var severity = GetSeverity(logLevel); writer.WriteProperty(nameof(severity), severity); }
public void Log <T>(SemanticLogLevel logLevel, T context, Action <T, IObjectWriter> action) { LogLevels[logLevel] = LogLevels.GetOrDefault(logLevel) + 1; }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel) { writer.WriteProperty("timestamp", clock.GetCurrentInstant()); }
public void Append(IObjectWriter writer, SemanticLogLevel logLevel, Exception?exception) { objectWriter(writer); }
public void Log(SemanticLogLevel logLevel, Action <IObjectWriter> action) { LogCount++; LogLevels[logLevel] = LogLevels.GetOrDefault(logLevel) + 1; }