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;