Skip to content

Commit 38eb130

Browse files
committed
Add support for logging/catching also very early messages
1 parent c00943b commit 38eb130

File tree

2 files changed

+28
-15
lines changed

2 files changed

+28
-15
lines changed

ArchiSteamFarm/Logging.cs

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,44 +39,55 @@ internal static class Logging {
3939
private static readonly HashSet<LoggingRule> ConsoleLoggingRules = new HashSet<LoggingRule>();
4040
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
4141

42-
internal static void Init() {
42+
private static bool IsUsingCustomConfiguration;
43+
44+
internal static void InitCoreLoggers() {
4345
if (LogManager.Configuration != null) {
4446
// User provided custom NLog config, or we have it set already, so don't override it
47+
IsUsingCustomConfiguration = true;
4548
InitConsoleLoggers();
4649
return;
4750
}
4851

4952
LoggingConfiguration config = new LoggingConfiguration();
5053

54+
ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget("Console") {
55+
Layout = Layout
56+
};
57+
58+
config.AddTarget(consoleTarget);
59+
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, consoleTarget));
60+
61+
LogManager.Configuration = config;
62+
InitConsoleLoggers();
63+
}
64+
65+
internal static void InitEnhancedLoggers() {
66+
if (IsUsingCustomConfiguration) {
67+
return;
68+
}
69+
5170
if (Program.GlobalConfig.LogToFile) {
5271
FileTarget fileTarget = new FileTarget("File") {
5372
DeleteOldFileOnStartup = true,
5473
FileName = Program.LogFile,
5574
Layout = Layout
5675
};
5776

58-
config.AddTarget(fileTarget);
59-
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, fileTarget));
77+
LogManager.Configuration.AddTarget(fileTarget);
78+
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, fileTarget));
6079
}
6180

6281
if (Program.IsRunningAsService) {
6382
EventLogTarget eventLogTarget = new EventLogTarget("EventLog") {
6483
Layout = Layout
6584
};
6685

67-
config.AddTarget(eventLogTarget);
68-
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, eventLogTarget));
86+
LogManager.Configuration.AddTarget(eventLogTarget);
87+
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, eventLogTarget));
6988
}
7089

71-
ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget("Console") {
72-
Layout = Layout
73-
};
74-
75-
config.AddTarget(consoleTarget);
76-
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, consoleTarget));
77-
78-
LogManager.Configuration = config;
79-
InitConsoleLoggers();
90+
LogGenericInfo("Logging module initialized!");
8091
}
8192

8293
internal static void OnUserInputStart() {

ArchiSteamFarm/Program.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,9 @@ private static void Init(IEnumerable<string> args) {
458458
AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;
459459
TaskScheduler.UnobservedTaskException += UnobservedTaskExceptionHandler;
460460

461+
Logging.InitCoreLoggers();
461462
Logging.LogGenericInfo("ASF V" + Version);
463+
462464
Directory.SetCurrentDirectory(ExecutableDirectory);
463465
InitServices();
464466

@@ -502,7 +504,7 @@ private static void Init(IEnumerable<string> args) {
502504
}
503505

504506
// From now on it's server mode
505-
Logging.Init();
507+
Logging.InitEnhancedLoggers();
506508

507509
if (!Directory.Exists(ConfigDirectory)) {
508510
Logging.LogGenericError("Config directory doesn't exist!");

0 commit comments

Comments
 (0)