diff options
author | mageven <62494521+mageven@users.noreply.github.com> | 2020-08-04 05:02:53 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-04 01:32:53 +0200 |
commit | a33dc2f4919f7fdc8ea9db41c4c70c38cedfd3df (patch) | |
tree | d3eee67f25c3a302fa23dc39670438e7ebbfd35c /Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs | |
parent | 60db4c353099e8656a330ede03fdbe57a421fa47 (diff) |
Improved Logger (#1292)
* Logger class changes only
Now compile-time checking is possible with the help of Nullable Value
types.
* Misc formatting
* Manual optimizations
PrintGuestLog
PrintGuestStackTrace
Surfaceflinger DequeueBuffer
* Reduce SendVibrationXX log level to Debug
* Add Notice log level
This level is always enabled and used to print system info, etc...
Also, rewrite LogColor to switch expression as colors are static
* Unify unhandled exception event handlers
* Print enabled LogLevels during init
* Re-add App Exit disposes in proper order
nit: switch case spacing
* Revert PrintGuestStackTrace to Info logs due to #1407
PrintGuestStackTrace is now called in some critical error handlers
so revert to old behavior as KThread isn't part of Guest.
* Batch replace Logger statements
Diffstat (limited to 'Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs')
-rw-r--r-- | Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs b/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs index ff5c6f5a..15f0e153 100644 --- a/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs +++ b/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs @@ -5,23 +5,20 @@ namespace Ryujinx.Common.Logging { public class ConsoleLogTarget : ILogTarget { - private static readonly ConcurrentDictionary<LogLevel, ConsoleColor> _logColors; - private readonly ILogFormatter _formatter; private readonly string _name; string ILogTarget.Name { get => _name; } - static ConsoleLogTarget() - { - _logColors = new ConcurrentDictionary<LogLevel, ConsoleColor> { - [ LogLevel.Stub ] = ConsoleColor.DarkGray, - [ LogLevel.Info ] = ConsoleColor.White, - [ LogLevel.Warning ] = ConsoleColor.Yellow, - [ LogLevel.Error ] = ConsoleColor.Red - }; - } + private static ConsoleColor GetLogColor(LogLevel level) => level switch { + LogLevel.Info => ConsoleColor.White, + LogLevel.Warning => ConsoleColor.Yellow, + LogLevel.Error => ConsoleColor.Red, + LogLevel.Stub => ConsoleColor.DarkGray, + LogLevel.Notice => ConsoleColor.Cyan, + _ => ConsoleColor.Gray, + }; public ConsoleLogTarget(string name) { @@ -31,18 +28,9 @@ namespace Ryujinx.Common.Logging public void Log(object sender, LogEventArgs args) { - if (_logColors.TryGetValue(args.Level, out ConsoleColor color)) - { - Console.ForegroundColor = color; - - Console.WriteLine(_formatter.Format(args)); - - Console.ResetColor(); - } - else - { - Console.WriteLine(_formatter.Format(args)); - } + Console.ForegroundColor = GetLogColor(args.Level); + Console.WriteLine(_formatter.Format(args)); + Console.ResetColor(); } public void Dispose() |