|
15 | 15 | // along with this program. If not, see <https://www.gnu.org/licenses/>. |
16 | 16 | #endregion |
17 | 17 | using System; |
| 18 | +using System.Collections.Generic; |
18 | 19 | using System.IO; |
19 | 20 | using AutoDarkModeLib; |
20 | 21 | using NLog; |
@@ -44,29 +45,57 @@ public static class LoggerSetup |
44 | 45 | "cleanNamesOfAsyncContinuations=true}: ${message} ${exception}" |
45 | 46 | }; |
46 | 47 |
|
47 | | - public static void UpdateLogmanConfig() |
| 48 | + /// <summary> |
| 49 | + /// Initialize logging based on command line arguments |
| 50 | + /// </summary> |
| 51 | + public static void InitializeLogging(List<string> args) |
| 52 | + { |
| 53 | + //Set up Logger |
| 54 | + NLog.Config.LoggingConfiguration config = new(); |
| 55 | + |
| 56 | + // Rules for mapping loggers to targets |
| 57 | + config.AddRule(LogLevel.Trace, LogLevel.Fatal, LoggerSetup.Logconsole); |
| 58 | + if (args.Contains("/debug")) |
| 59 | + { |
| 60 | + config.AddRule(LogLevel.Debug, LogLevel.Fatal, LoggerSetup.Logfile); |
| 61 | + } |
| 62 | + else if (args.Contains("/trace")) |
| 63 | + { |
| 64 | + config.AddRule(LogLevel.Trace, LogLevel.Fatal, LoggerSetup.Logfile); |
| 65 | + } |
| 66 | + else |
| 67 | + { |
| 68 | + config.AddRule(LogLevel.Info, LogLevel.Fatal, LoggerSetup.Logfile); |
| 69 | + } |
| 70 | + // Apply config |
| 71 | + LogManager.Configuration = config; |
| 72 | + } |
| 73 | + |
| 74 | + /// <summary> |
| 75 | + /// Update logging configuration based on config file settings |
| 76 | + /// </summary> |
| 77 | + public static void UpdateLoggingFromConfig() |
48 | 78 | { |
49 | 79 | AdmConfigBuilder builder = AdmConfigBuilder.Instance(); |
50 | 80 | var config = new NLog.Config.LoggingConfiguration(); |
51 | 81 | config.AddRule(LogLevel.Trace, LogLevel.Fatal, Logconsole); |
52 | | - if (builder.Config.Tunable.Debug) |
| 82 | + |
| 83 | + if (builder.Config.Tunable.Trace) |
| 84 | + { |
| 85 | + Logger.Info("enabling trace logs"); |
| 86 | + config.AddRule(LogLevel.Trace, LogLevel.Fatal, Logfile); |
| 87 | + } |
| 88 | + else if (builder.Config.Tunable.Debug) |
53 | 89 | { |
54 | | - if (builder.Config.Tunable.Trace) |
55 | | - { |
56 | | - Logger.Info("enabling trace logs"); |
57 | | - config.AddRule(LogLevel.Trace, LogLevel.Fatal, Logfile); |
58 | | - } |
59 | | - else |
60 | | - { |
61 | | - Logger.Info("enabling debug logs"); |
62 | | - config.AddRule(LogLevel.Debug, LogLevel.Fatal, Logfile); |
63 | | - } |
| 90 | + Logger.Info("enabling debug logs"); |
| 91 | + config.AddRule(LogLevel.Debug, LogLevel.Fatal, Logfile); |
64 | 92 | } |
65 | 93 | else |
66 | 94 | { |
67 | 95 | Logger.Info("enabling standard logging"); |
68 | 96 | config.AddRule(LogLevel.Info, LogLevel.Fatal, Logfile); |
69 | 97 | } |
| 98 | + |
70 | 99 | LogManager.Configuration = config; |
71 | 100 | } |
72 | 101 | } |
0 commit comments