diff --git a/RombaSharp/Program.cs b/RombaSharp/Program.cs
index af329ee0..5b26ebbb 100644
--- a/RombaSharp/Program.cs
+++ b/RombaSharp/Program.cs
@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
+using System.IO;
using RombaSharp.Features;
using SabreTools.Core;
using SabreTools.Help;
+using SabreTools.IO;
using SabreTools.Logging;
namespace RombaSharp
@@ -38,7 +40,7 @@ namespace RombaSharp
public static void Main(string[] args)
{
// Perform initial setup and verification
- LoggerImpl.SetFilename("romba.log", true);
+ LoggerImpl.SetFilename(Path.Combine(PathTool.GetRuntimeDirectory(), "logs", "romba.log"), true);
LoggerImpl.AppendPrefix = true;
LoggerImpl.LowestLogLevel = LogLevel.VERBOSE;
LoggerImpl.ThrowOnError = false;
diff --git a/SabreTools.Logging/LoggerImpl.cs b/SabreTools.Logging/LoggerImpl.cs
index 02113e4c..43a757b4 100644
--- a/SabreTools.Logging/LoggerImpl.cs
+++ b/SabreTools.Logging/LoggerImpl.cs
@@ -16,7 +16,7 @@ namespace SabreTools.Logging
///
/// Optional output filename for logs
///
- public static string Filename { get; set; } = null;
+ public static string Filename { get; private set; } = null;
///
/// Determines if we're logging to file or not
@@ -26,8 +26,7 @@ namespace SabreTools.Logging
///
/// Optional output log directory
///
- /// TODO: Make this either passed in or optional
- public static string LogDirectory { get; set; } = Path.Combine(PathTool.GetRuntimeDirectory(), "logs") + Path.DirectorySeparatorChar;
+ public static string LogDirectory { get; private set; } = null;
///
/// Determines the lowest log level to output
@@ -84,11 +83,17 @@ namespace SabreTools.Logging
/// True to append a date to the filename, false otherwise
public static void SetFilename(string filename, bool addDate = true)
{
- // Set and create the output
+ // Get the full log path
+ string fullPath = Path.GetFullPath(filename);
+
+ // Set the log directory
+ LogDirectory = Path.GetDirectoryName(fullPath);
+
+ // Set the
if (addDate)
- Filename = $"{Path.GetFileNameWithoutExtension(filename)} ({DateTime.Now:yyyy-MM-dd HH-mm-ss}).{filename.GetNormalizedExtension()}";
+ Filename = $"{Path.GetFileNameWithoutExtension(fullPath)} ({DateTime.Now:yyyy-MM-dd HH-mm-ss}).{fullPath.GetNormalizedExtension()}";
else
- Filename = filename;
+ Filename = Path.GetFileName(fullPath);
}
///
diff --git a/SabreTools/Program.cs b/SabreTools/Program.cs
index 207a0a63..8c3155bf 100644
--- a/SabreTools/Program.cs
+++ b/SabreTools/Program.cs
@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
+using System.IO;
using SabreTools.Features;
using SabreTools.Core;
using SabreTools.Help;
+using SabreTools.IO;
using SabreTools.Logging;
namespace SabreTools
@@ -31,7 +33,7 @@ namespace SabreTools
public static void Main(string[] args)
{
// Perform initial setup and verification
- LoggerImpl.SetFilename("sabretools.log", true);
+ LoggerImpl.SetFilename(Path.Combine(PathTool.GetRuntimeDirectory(), "logs", "sabretools.log"), true);
LoggerImpl.AppendPrefix = true;
LoggerImpl.LowestLogLevel = LogLevel.VERBOSE;
LoggerImpl.ThrowOnError = false;