aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Core/Logging.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Core/Logging.cs')
-rw-r--r--Ryujinx.Core/Logging.cs49
1 files changed, 33 insertions, 16 deletions
diff --git a/Ryujinx.Core/Logging.cs b/Ryujinx.Core/Logging.cs
index 225903f9..1767e1a0 100644
--- a/Ryujinx.Core/Logging.cs
+++ b/Ryujinx.Core/Logging.cs
@@ -4,6 +4,7 @@ using System.Diagnostics;
using System.IO;
using System.Runtime.CompilerServices;
using System.Text;
+using System.Threading;
namespace Ryujinx.Core
{
@@ -13,14 +14,16 @@ namespace Ryujinx.Core
private const string LogFileName = "Ryujinx.log";
- private static bool EnableInfo = Config.LoggingEnableInfo;
- private static bool EnableTrace = Config.LoggingEnableTrace;
- private static bool EnableDebug = Config.LoggingEnableDebug;
- private static bool EnableWarn = Config.LoggingEnableWarn;
- private static bool EnableError = Config.LoggingEnableError;
- private static bool EnableFatal = Config.LoggingEnableFatal;
- private static bool EnableIpc = Config.LoggingEnableIpc;
- private static bool EnableLogFile = Config.LoggingEnableLogFile;
+ private static bool EnableInfo = Config.LoggingEnableInfo;
+ private static bool EnableTrace = Config.LoggingEnableTrace;
+ private static bool EnableDebug = Config.LoggingEnableDebug;
+ private static bool EnableWarn = Config.LoggingEnableWarn;
+ private static bool EnableError = Config.LoggingEnableError;
+ private static bool EnableFatal = Config.LoggingEnableFatal;
+ private static bool EnableIpc = Config.LoggingEnableIpc;
+ private static bool EnableFilter = Config.LoggingEnableFilter;
+ private static bool EnableLogFile = Config.LoggingEnableLogFile;
+ private static bool[] FilteredLogClasses = Config.LoggingFilteredClasses;
private enum LogLevel
{
@@ -45,6 +48,10 @@ namespace Ryujinx.Core
private static void LogMessage(LogEntry LogEntry)
{
+ if (EnableFilter)
+ if (!FilteredLogClasses[(int)LogEntry.LogClass])
+ return;
+
ConsoleColor consoleColor = ConsoleColor.White;
switch (LogEntry.LogLevel)
@@ -69,8 +76,10 @@ namespace Ryujinx.Core
break;
}
- string Text = $"{LogEntry.ExecutionTime} | {LogEntry.LogLevel.ToString()} > " +
- $"{LogEntry.CallingMember} > {LogEntry.Message}";
+ LogEntry.ManagedThreadId = Thread.CurrentThread.ManagedThreadId;
+
+ string Text = $"{LogEntry.ExecutionTime} | {LogEntry.ManagedThreadId} > {LogEntry.LogClass} > " +
+ $"{LogEntry.LogLevel.ToString()} > {LogEntry.CallingMember} > {LogEntry.Message}";
Console.ForegroundColor = consoleColor;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
@@ -90,7 +99,7 @@ namespace Ryujinx.Core
}
}
- public static void Info(string Message, [CallerMemberName] string CallingMember = "")
+ public static void Info(LogClass LogClass, string Message, [CallerMemberName] string CallingMember = "")
{
if (EnableInfo)
{
@@ -98,13 +107,14 @@ namespace Ryujinx.Core
{
CallingMember = CallingMember,
LogLevel = LogLevel.Info,
+ LogClass = LogClass,
Message = Message,
ExecutionTime = GetExecutionTime()
});
}
}
- public static void Trace(string Message, [CallerMemberName] string CallingMember = "")
+ public static void Trace(LogClass LogClass, string Message, [CallerMemberName] string CallingMember = "")
{
if (EnableTrace)
{
@@ -112,13 +122,14 @@ namespace Ryujinx.Core
{
CallingMember = CallingMember,
LogLevel = LogLevel.Trace,
+ LogClass = LogClass,
Message = Message,
ExecutionTime = GetExecutionTime()
});
}
}
- public static void Debug(string Message, [CallerMemberName] string CallingMember = "")
+ public static void Debug(LogClass LogClass,string Message, [CallerMemberName] string CallingMember = "")
{
if (EnableDebug)
{
@@ -126,13 +137,14 @@ namespace Ryujinx.Core
{
CallingMember = CallingMember,
LogLevel = LogLevel.Debug,
+ LogClass = LogClass,
Message = Message,
ExecutionTime = GetExecutionTime()
});
}
}
- public static void Warn(string Message, [CallerMemberName] string CallingMember = "")
+ public static void Warn(LogClass LogClass, string Message, [CallerMemberName] string CallingMember = "")
{
if (EnableWarn)
{
@@ -140,13 +152,14 @@ namespace Ryujinx.Core
{
CallingMember = CallingMember,
LogLevel = LogLevel.Warn,
+ LogClass = LogClass,
Message = Message,
ExecutionTime = GetExecutionTime()
});
}
}
- public static void Error(string Message, [CallerMemberName] string CallingMember = "")
+ public static void Error(LogClass LogClass, string Message, [CallerMemberName] string CallingMember = "")
{
if (EnableError)
{
@@ -154,13 +167,14 @@ namespace Ryujinx.Core
{
CallingMember = CallingMember,
LogLevel = LogLevel.Error,
+ LogClass = LogClass,
Message = Message,
ExecutionTime = GetExecutionTime()
});
}
}
- public static void Fatal(string Message, [CallerMemberName] string CallingMember = "")
+ public static void Fatal(LogClass LogClass, string Message, [CallerMemberName] string CallingMember = "")
{
if (EnableFatal)
{
@@ -168,6 +182,7 @@ namespace Ryujinx.Core
{
CallingMember = CallingMember,
LogLevel = LogLevel.Fatal,
+ LogClass = LogClass,
Message = Message,
ExecutionTime = GetExecutionTime()
});
@@ -253,6 +268,8 @@ namespace Ryujinx.Core
public string CallingMember;
public string ExecutionTime;
public string Message;
+ public int ManagedThreadId;
+ public LogClass LogClass;
public LogLevel LogLevel;
}
}