/// <summary> /// Writes to log. /// </summary> /// <param name="logLevel">The log level.</param> /// <param name="domain">The domain.</param> /// <param name="messageTemplate">The message template.</param> public void WriteToLog(RockLogLevel logLevel, string domain, string messageTemplate) { EnsureLoggerExistsAndUpdated(); if (!ShouldLogEntry(logLevel, domain)) { return; } var serilogLogLevel = GetLogEventLevelFromRockLogLevel(logLevel); if (_logger != null && _logger != Serilog.Core.Logger.None) { _logger?.Write(serilogLogLevel, GetMessageTemplateWithDomain(messageTemplate), domain.ToUpper()); if (_logger == null || _logger == Serilog.Core.Logger.None) { // It is possible that it wrote depending on exact timing, but // this could happen if there are Reads (From the Rock Logs block) and writes happening at *exactly* the same time System.Diagnostics.Debug.WriteLine($"Might not have written to _logger due to read/write conflict."); } } else { // This could happen if there are Reads (From the Rock Logs block) and writes happening at exactly the same time System.Diagnostics.Debug.WriteLine($"Didn't write to _logger due to read/write conflict."); } }
private bool ShouldLogEntry(RockLogLevel logLevel, string domain) { if (logLevel > LogConfiguration.LogLevel || logLevel == RockLogLevel.Off) { return(false); } if (!_domains.Contains(domain.ToUpper())) { return(false); } return(true); }
/// <summary> /// Writes to log. /// </summary> /// <param name="logLevel">The log level.</param> /// <param name="exception">The exception.</param> /// <param name="domain">The domain.</param> /// <param name="messageTemplate">The message template.</param> /// <param name="propertyValues">The property values.</param> public void WriteToLog(RockLogLevel logLevel, Exception exception, string domain, string messageTemplate, params object[] propertyValues) { EnsureLoggerExistsAndUpdated(); if (!ShouldLogEntry(logLevel, domain)) { return; } var serilogLogLevel = GetLogEventLevelFromRockLogLevel(logLevel); _logger.Write(serilogLogLevel, exception, GetMessageTemplateWithDomain(messageTemplate), AddDomainToObjectArray(propertyValues, domain.ToUpper())); }
/// <summary> /// Writes to log. /// </summary> /// <param name="logLevel">The log level.</param> /// <param name="exception">The exception.</param> /// <param name="domain">The domain.</param> /// <param name="messageTemplate">The message template.</param> public void WriteToLog(RockLogLevel logLevel, Exception exception, string domain, string messageTemplate) { EnsureLoggerExistsAndUpdated(); if (!ShouldLogEntry(logLevel, domain)) { return; } var serilogLogLevel = GetLogEventLevelFromRockLogLevel(logLevel); _logger.Write(serilogLogLevel, exception, GetMessageTemplateWithDomain(messageTemplate), domain.ToUpper()); }
private Serilog.Events.LogEventLevel GetLogEventLevelFromRockLogLevel(RockLogLevel logLevel) { switch (logLevel) { case (RockLogLevel.Error): return(Serilog.Events.LogEventLevel.Error); case (RockLogLevel.Warning): return(Serilog.Events.LogEventLevel.Warning); case (RockLogLevel.Info): return(Serilog.Events.LogEventLevel.Information); case (RockLogLevel.Debug): return(Serilog.Events.LogEventLevel.Debug); case (RockLogLevel.All): return(Serilog.Events.LogEventLevel.Verbose); default: return(Serilog.Events.LogEventLevel.Fatal); } }
/// <summary> /// Writes to log. /// </summary> /// <param name="logLevel">The log level.</param> /// <param name="exception">The exception.</param> /// <param name="messageTemplate">The message template.</param> /// <param name="propertyValues">The property values.</param> public void WriteToLog(RockLogLevel logLevel, Exception exception, string messageTemplate, params object[] propertyValues) { WriteToLog(logLevel, exception, DEFAULT_DOMAIN, messageTemplate, propertyValues); }
/// <summary> /// Writes to log. /// </summary> /// <param name="logLevel">The log level.</param> /// <param name="exception">The exception.</param> /// <param name="messageTemplate">The message template.</param> public void WriteToLog(RockLogLevel logLevel, Exception exception, string messageTemplate) { WriteToLog(logLevel, exception, DEFAULT_DOMAIN, messageTemplate); }
private IRockLogger GetTestLogger(string logFolder = "", List <string> domainsToLog = null, RockLogLevel logLevel = RockLogLevel.All, int numberOfLogFiles = 2, int logSize = 1) { if (string.IsNullOrWhiteSpace(logFolder)) { logFolder = LogFolder; } if (domainsToLog == null) { domainsToLog = new List <string> { "OTHER", "crm" }; } var config = new RockLogConfiguration { LogLevel = logLevel, MaxFileSize = logSize, NumberOfLogFiles = numberOfLogFiles, DomainsToLog = domainsToLog, LogPath = $"{logFolder}\\{Guid.NewGuid()}.log", LastUpdated = RockDateTime.Now }; return(ReflectionHelper.InstantiateInternalObject <IRockLogger>("Rock.Logging.RockLoggerSerilog", config)); }
public static void SaveRockLogConfiguration(List <string> domainsToLog = null, RockLogLevel logLevel = RockLogLevel.Off, int maxFileSize = 0, int maxFiles = 0) { if (domainsToLog == null) { domainsToLog = new List <string> { RockLogDomains.Other }; } var logConfig = new RockLogSystemSettings { LogLevel = logLevel, DomainsToLog = domainsToLog, MaxFileSize = maxFileSize, NumberOfLogFiles = maxFiles }; Rock.Web.SystemSettings.SetValue(SystemSetting.ROCK_LOGGING_SETTINGS, logConfig.ToJson()); }