public virtual void Enrich(LogHelperLoggingEvent loggingEvent) { if (null != _contextAccessor?.HttpContext) { _enrichAction.Invoke(loggingEvent, _contextAccessor.HttpContext); } }
public static void AddProperty(this LogHelperLoggingEvent loggingEvent, string propertyName, object propertyValue, bool overwrite = false) { Guard.NotNull(loggingEvent, nameof(loggingEvent)); loggingEvent.Properties ??= new Dictionary <string, object?>(); if (loggingEvent.Properties.ContainsKey(propertyName) && !overwrite) { return; } loggingEvent.Properties[propertyName] = propertyValue; }
private static bool LogInternal(ILogger logger, LogHelperLoggingEvent loggingEvent) { var logLevel = ConvertLogLevel(loggingEvent.LogLevel); if (!logger.IsEnabled(logLevel)) { return(false); } var logged = false; switch (loggingEvent.LogLevel) { case LogHelperLogLevel.Debug: logger.LogDebug(loggingEvent.Exception, loggingEvent.Message); logged = true; break; case LogHelperLogLevel.Trace: logger.LogTrace(loggingEvent.Exception, loggingEvent.Message); logged = true; break; case LogHelperLogLevel.Info: logger.LogInformation(loggingEvent.Exception, loggingEvent.Message); logged = true; break; case LogHelperLogLevel.Warn: logger.LogWarning(loggingEvent.Exception, loggingEvent.Message); logged = true; break; case LogHelperLogLevel.Error: logger.LogError(loggingEvent.Exception, loggingEvent.Message); logged = true; break; case LogHelperLogLevel.Fatal: logger.LogCritical(loggingEvent.Exception, loggingEvent.Message); logged = true; break; } return(logged); }
public void Log(LogHelperLogLevel logLevel, Exception?exception, string?messageTemplate, params object?[] parameters) { if (!IsEnabled(logLevel)) { return; } var loggingEvent = new LogHelperLoggingEvent() { CategoryName = CategoryName, DateTime = DateTimeOffset.UtcNow, Exception = exception, LogLevel = logLevel, MessageTemplate = messageTemplate ?? string.Empty, }; if (_logHelperFactory._logFilters.Count > 0 && !_logHelperFactory._logFilters.Any(x => x.Invoke(typeof(int), loggingEvent)) ) { return; } var formattedLog = LoggingFormatter.Format(loggingEvent.MessageTemplate, parameters); loggingEvent.Message = formattedLog.Msg; loggingEvent.Properties = formattedLog.Values; foreach (var enricher in _logHelperFactory._logHelperEnrichers) { enricher.Enrich(loggingEvent); } Parallel.ForEach(_logHelperFactory._logHelperProviders, logHelperProvider => { if (_logHelperFactory._logFilters.Count == 0 || _logHelperFactory._logFilters.All(x => x.Invoke(logHelperProvider.Key, loggingEvent))) { logHelperProvider.Value.Log(loggingEvent); } }); }
public void Log(LogHelperLoggingEvent loggingEvent) { var logger = SSerilog.Log.ForContext(SourceContextPropName, loggingEvent.CategoryName); //Log(logger, loggingEvent.LogLevel, loggingEvent.Exception, loggingEvent.Message); var logLevel = GetSerilogEventLevel(loggingEvent.LogLevel); if (logger.IsEnabled(logLevel)) { var messageTemplate = loggingEvent.MessageTemplate; var properties = new List <LogEventProperty>(); if (loggingEvent.Properties != null) { foreach (var property in loggingEvent.Properties) { if (logger.BindProperty(property.Key, property.Value, false, out var bound)) { properties.Add(bound); } } } var parsedTemplate = MessageTemplateParser.Parse(messageTemplate ?? ""); logger.Write(new LogEvent(loggingEvent.DateTime, logLevel, loggingEvent.Exception, parsedTemplate, properties)); } }
public void Log(LogHelperLoggingEvent loggingEvent) { var logger = _loggerFactory.CreateLogger(loggingEvent.CategoryName); _ = LogInternal(logger, loggingEvent); }