From a33dc2f4919f7fdc8ea9db41c4c70c38cedfd3df Mon Sep 17 00:00:00 2001 From: mageven <62494521+mageven@users.noreply.github.com> Date: Tue, 4 Aug 2020 05:02:53 +0530 Subject: 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 --- Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | 2 +- Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs | 6 +++--- Ryujinx.HLE/HOS/Kernel/SupervisorCall/SyscallTable.cs | 8 ++++---- Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs | 7 +------ 4 files changed, 9 insertions(+), 14 deletions(-) (limited to 'Ryujinx.HLE/HOS/Kernel') diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs index 5d004694..d9b2c039 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs @@ -1097,7 +1097,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process { KernelContext.Scheduler.GetCurrentThreadOrNull()?.PrintGuestStackTrace(); - Logger.PrintError(LogClass.Cpu, $"Invalid memory access at virtual address 0x{va:X16}."); + Logger.Error?.Print(LogClass.Cpu, $"Invalid memory access at virtual address 0x{va:X16}."); return false; } diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs index e29259bf..c3602c15 100644 --- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs +++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs @@ -153,7 +153,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall } else { - Logger.PrintWarning(LogClass.KernelSvc, $"Invalid session handle 0x{handle:x8}!"); + Logger.Warning?.Print(LogClass.KernelSvc, $"Invalid session handle 0x{handle:x8}!"); return KernelResult.InvalidHandle; } @@ -1381,7 +1381,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall } else { - Logger.PrintDebug(LogClass.KernelSvc, "Debugger triggered."); + Logger.Debug?.Print(LogClass.KernelSvc, "Debugger triggered."); } } @@ -1391,7 +1391,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall string str = MemoryHelper.ReadAsciiString(process.CpuMemory, (long)strPtr, (long)size); - Logger.PrintWarning(LogClass.KernelSvc, str); + Logger.Warning?.Print(LogClass.KernelSvc, str); } public KernelResult GetInfo(uint id, int handle, long subId, out long value) diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SyscallTable.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SyscallTable.cs index dcfd9347..02b6fb3c 100644 --- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SyscallTable.cs +++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SyscallTable.cs @@ -441,11 +441,11 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall { if (argValues != null) { - Logger.PrintDebug(LogClass.KernelSvc, string.Format(formatOrSvcName, argValues)); + Logger.Debug?.Print(LogClass.KernelSvc, string.Format(formatOrSvcName, argValues)); } else { - Logger.PrintDebug(LogClass.KernelSvc, formatOrSvcName); + Logger.Debug?.Print(LogClass.KernelSvc, formatOrSvcName); } } @@ -456,11 +456,11 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall result != KernelResult.Cancelled && result != KernelResult.InvalidState) { - Logger.PrintWarning(LogClass.KernelSvc, $"{svcName} returned error {result}."); + Logger.Warning?.Print(LogClass.KernelSvc, $"{svcName} returned error {result}."); } else { - Logger.PrintDebug(LogClass.KernelSvc, $"{svcName} returned result {result}."); + Logger.Debug?.Print(LogClass.KernelSvc, $"{svcName} returned result {result}."); } } } diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs index d4603178..86887367 100644 --- a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs +++ b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs @@ -1131,12 +1131,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading public void PrintGuestStackTrace() { - StringBuilder trace = new StringBuilder(); - - trace.AppendLine("Guest stack trace:"); - trace.AppendLine(GetGuestStackTrace()); - - Logger.PrintInfo(LogClass.Cpu, trace.ToString()); + Logger.Info?.Print(LogClass.Cpu, $"Guest stack trace:\n{GetGuestStackTrace()}\n"); } public void Execute() -- cgit v1.2.3