public void Enrich(LogHelperLoggingEvent loggingEvent) { if (_logPropertyPredict?.Invoke(loggingEvent) != false) { loggingEvent.AddProperty(_propertyName, _propertyValueFactory, _overwrite); } }
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 static void AddProperty(this LogHelperLoggingEvent loggingEvent, string propertyName, object propertyValue, bool overwrite = false) { if (null == loggingEvent) { throw new ArgumentNullException(nameof(loggingEvent)); } if (loggingEvent.Properties == null) { loggingEvent.Properties = new Dictionary <string, object>(); } if (loggingEvent.Properties.ContainsKey(propertyName) && overwrite == false) { return; } loggingEvent.Properties[propertyName] = propertyValue; }
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 = _loggerFactory.CreateLogger(loggingEvent.CategoryName); _ = LogInternal(logger, loggingEvent); }