aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs')
-rw-r--r--src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs b/src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs
index 54ad20dd..6cd63272 100644
--- a/src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs
+++ b/src/Ryujinx.Ui.Common/Configuration/LoggerModule.cs
@@ -1,7 +1,9 @@
using Ryujinx.Common;
+using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
using Ryujinx.Common.Logging.Targets;
using System;
+using System.IO;
namespace Ryujinx.Ui.Common.Configuration
{
@@ -80,8 +82,23 @@ namespace Ryujinx.Ui.Common.Configuration
{
if (e.NewValue)
{
+ FileStream logFile = FileLogTarget.PrepareLogFile(AppDomain.CurrentDomain.BaseDirectory);
+
+ if (logFile == null)
+ {
+ logFile = FileLogTarget.PrepareLogFile(AppDataManager.BaseDirPath);
+
+ if (logFile == null)
+ {
+ Logger.Error?.Print(LogClass.Application, "No writable log directory available. Make sure either the application directory or the Ryujinx directory is writable.");
+ Logger.RemoveTarget("file");
+
+ return;
+ }
+ }
+
Logger.AddTarget(new AsyncLogTargetWrapper(
- new FileLogTarget(ReleaseInformation.GetBaseApplicationDirectory(), "file"),
+ new FileLogTarget("file", logFile),
1000,
AsyncLogTargetOverflowAction.Block
));