diff --git a/src/Perpetuum.Bootstrapper/Modules/LoggersModule.cs b/src/Perpetuum.Bootstrapper/Modules/LoggersModule.cs index 50437eb8..0f66523a 100644 --- a/src/Perpetuum.Bootstrapper/Modules/LoggersModule.cs +++ b/src/Perpetuum.Bootstrapper/Modules/LoggersModule.cs @@ -100,7 +100,11 @@ protected override void Load(ContainerBuilder builder) } }; - return new CompositeLogger(fileLogger, new ColoredConsoleLogger(formater)); + if (Environment.UserInteractive) + { + return new CompositeLogger(fileLogger, new ColoredConsoleLogger(formater)); + } + return new CompositeLogger(fileLogger); }).As>(); _ = builder.RegisterType(); diff --git a/src/Perpetuum.Bootstrapper/PerpetuumBootstrapper.cs b/src/Perpetuum.Bootstrapper/PerpetuumBootstrapper.cs index 2cf07914..c3fbe266 100644 --- a/src/Perpetuum.Bootstrapper/PerpetuumBootstrapper.cs +++ b/src/Perpetuum.Bootstrapper/PerpetuumBootstrapper.cs @@ -60,6 +60,7 @@ using Perpetuum.Zones.Terrains.Terraforming; using SharpOpenNat; using System.Numerics; +using System.Reflection; using System.Runtime; using System.Runtime.Caching; using System.Runtime.Versioning; @@ -157,6 +158,15 @@ public void Init(string gameRoot) throw new InvalidOperationException(message); } + // Get last commit hash + var version = Assembly.GetEntryAssembly() + ?.GetCustomAttribute() + ?.InformationalVersion; +#if DEBUG + Logger.Warning($"DEBUG Version: {version}, UserInteractive: {Environment.UserInteractive}"); +#else + Logger.Info($"RELEASE Version: {version}, UserInteractive: {Environment.UserInteractive}"); +#endif Logger.Info($"Game root: {config.GameRoot}"); Logger.Info($"GC isServerGC: {GCSettings.IsServerGC}"); Logger.Info($"GC Latency mode: {GCSettings.LatencyMode}"); diff --git a/src/Perpetuum/Log/Loggers/ColoredConsoleLogger.cs b/src/Perpetuum/Log/Loggers/ColoredConsoleLogger.cs index eea6d253..5443635e 100644 --- a/src/Perpetuum/Log/Loggers/ColoredConsoleLogger.cs +++ b/src/Perpetuum/Log/Loggers/ColoredConsoleLogger.cs @@ -3,6 +3,7 @@ namespace Perpetuum.Log.Loggers public class ColoredConsoleLogger : ConsoleLogger { private readonly ConsoleColor _defaultColor = Console.ForegroundColor; + private readonly object _lock = new object(); public ColoredConsoleLogger(ILogEventFormatter formatter) : base(formatter) { @@ -10,31 +11,28 @@ public ColoredConsoleLogger(ILogEventFormatter formatter) : ba public override void Log(LogEvent logEvent) { - try + var message = _formatter.Format(logEvent); + + lock (_lock) { - switch (logEvent.LogType) + try { - case LogType.Warning: - { + switch (logEvent.LogType) + { + case LogType.Warning: Console.ForegroundColor = ConsoleColor.Yellow; break; - } - case LogType.Error: - { - { - Console.ForegroundColor = ConsoleColor.Red; - //Console.Beep(4000, 30); I HAET U GOU OWEI - break; - } - } + case LogType.Error: + Console.ForegroundColor = ConsoleColor.Red; + break; + } + Console.Out.WriteLine(message); + } + finally + { + Console.ForegroundColor = _defaultColor; } - - base.Log(logEvent); - } - finally - { - Console.ForegroundColor = _defaultColor; } } } -} \ No newline at end of file +} diff --git a/src/Perpetuum/Log/Loggers/ConsoleLogger.cs b/src/Perpetuum/Log/Loggers/ConsoleLogger.cs index bcf05bf8..aa61c1eb 100644 --- a/src/Perpetuum/Log/Loggers/ConsoleLogger.cs +++ b/src/Perpetuum/Log/Loggers/ConsoleLogger.cs @@ -4,7 +4,7 @@ namespace Perpetuum.Log.Loggers { public class ConsoleLogger : ILogger where T : ILogEvent { - private readonly ILogEventFormatter _formatter; + protected readonly ILogEventFormatter _formatter; public ConsoleLogger(ILogEventFormatter formatter) {