diff --git a/MTApiService/LogConfigurator.cs b/MTApiService/LogConfigurator.cs index 51f1442c..65833989 100755 --- a/MTApiService/LogConfigurator.cs +++ b/MTApiService/LogConfigurator.cs @@ -52,24 +52,45 @@ namespace MTApiService #endregion } + public enum LogLevel + { + Off, + Debug, + Info + } + public class LogConfigurator { private const string LogFileNameExtension = "log"; public static void Setup(string profileName) { +#if (DEBUG) + const LogLevel logLevel = LogLevel.Debug; +#else + const LogLevel logLevel = LogLevel.Info; +#endif + Setup(profileName, logLevel); + } + + public static void Setup(string profileName, LogLevel logLevel) + { if (string.IsNullOrEmpty(profileName)) throw new ArgumentNullException(); var hierarchy = (Hierarchy) LogManager.GetRepository(); + //check if logger is already configurated to avoid creation many empty logs files + if (hierarchy.Configured) + return; + var patternLayout = new PatternLayout { ConversionPattern = "%date [%thread] %-5level %logger - %message%newline" }; patternLayout.ActivateOptions(); - string filename = $"{DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss")}-{Process.GetCurrentProcess().Id}.{LogFileNameExtension}"; + var filename = $"{DateTime.Now:yyyy-dd-M--HH-mm-ss}-{Process.GetCurrentProcess().Id}.{LogFileNameExtension}"; var roller = new RollingFileAppender { @@ -84,12 +105,7 @@ namespace MTApiService }; roller.ActivateOptions(); hierarchy.Root.AddAppender(roller); - -#if (DEBUG) - hierarchy.Root.Level = Level.Debug; -#else - hierarchy.Root.Level = Level.Info; -#endif + hierarchy.Root.Level = ConvertLogLevel(logLevel); hierarchy.Configured = true; } @@ -100,5 +116,17 @@ namespace MTApiService return new MtLog(type); } + + private static Level ConvertLogLevel(LogLevel logLevel) + { + switch (logLevel) + { + case LogLevel.Debug: return Level.Debug; + case LogLevel.Info: return Level.Info; + case LogLevel.Off: return Level.Off; + default: + throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null); + } + } } }