aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs
diff options
context:
space:
mode:
authormageven <62494521+mageven@users.noreply.github.com>2020-08-04 05:02:53 +0530
committerGitHub <noreply@github.com>2020-08-04 01:32:53 +0200
commita33dc2f4919f7fdc8ea9db41c4c70c38cedfd3df (patch)
treed3eee67f25c3a302fa23dc39670438e7ebbfd35c /Ryujinx.Common/Logging/Targets/ConsoleLogTarget.cs
parent60db4c353099e8656a330ede03fdbe57a421fa47 (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.cs34
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()