diff --git a/DownKyi.Core/Logging/LogManager.cs b/DownKyi.Core/Logging/LogManager.cs
index e8b9db9..d47c43d 100644
--- a/DownKyi.Core/Logging/LogManager.cs
+++ b/DownKyi.Core/Logging/LogManager.cs
@@ -1,5 +1,6 @@
using System.Collections.Concurrent;
using System.Text.RegularExpressions;
+using DownKyi.Core.Storage;
using static System.DateTime;
namespace DownKyi.Core.Logging;
@@ -60,28 +61,10 @@ public class LogManager
private static AutoResetEvent Pause => new AutoResetEvent(false);
- private static string logDirectory;
-
///
- /// 日志存放目录,默认日志放在当前应用程序运行目录下的logs文件夹中
+ /// 日志存放目录,windows默认日志放在当前应用程序运行目录下的Logs文件夹中,macOS、linux存放于applicationData目录下
///
- public static string LogDirectory
- {
- get => logDirectory ??
- (Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory).Any(s => s.Contains("Web.config"))
- ? AppDomain.CurrentDomain.BaseDirectory + @"App_Data\Logs\"
- : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs"));
- set
- {
- //自定义目录
- if (!Directory.Exists(value))
- {
- Directory.CreateDirectory(value);
- }
-
- logDirectory = value;
- }
- }
+ private static string LogDirectory => StorageManager.GetLogsDir();
///
/// 写入Info级别的日志
diff --git a/DownKyi.Core/Storage/Constant.cs b/DownKyi.Core/Storage/Constant.cs
index 74a0b69..f2bfe3b 100644
--- a/DownKyi.Core/Storage/Constant.cs
+++ b/DownKyi.Core/Storage/Constant.cs
@@ -6,9 +6,30 @@
internal static class Constant
{
// 根目录
+#if NET8_0_OR_GREATER //兼容8.0中断性变更https://learn.microsoft.com/zh-cn/dotnet/core/compatibility/core-libraries/8.0/getfolderpath-unix
private static string Root => OperatingSystem.IsWindows()
? AppDomain.CurrentDomain.BaseDirectory
- : Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Downkyi");
+ : Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "DownKyi");
+#else
+ private static string Root
+ {
+ get
+ {
+ if (OperatingSystem.IsWindows())
+ {
+ return AppDomain.CurrentDomain.BaseDirectory;
+ }
+
+ if (OperatingSystem.IsMacOS())
+ {
+ return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library",
+ "Application Support", "DownKyi");
+ }
+
+ return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "DownKyi");
+ }
+ }
+#endif
// private static string Root { get; } = AppDomain.CurrentDomain.BaseDirectory;
// Aria
diff --git a/DownKyi.Core/Storage/StorageManager.cs b/DownKyi.Core/Storage/StorageManager.cs
index 03b2ad3..3407ec9 100644
--- a/DownKyi.Core/Storage/StorageManager.cs
+++ b/DownKyi.Core/Storage/StorageManager.cs
@@ -3,7 +3,7 @@
public static class StorageManager
{
///
- /// 获取历史记录的文件路径
+ /// 获取Aria的文件路径
///
///
public static string GetAriaDir()
@@ -11,6 +11,16 @@ public static class StorageManager
CreateDirectory(Constant.Aria);
return Constant.Aria;
}
+
+ ///
+ /// 获取日志的文件路径
+ ///
+ ///
+ public static string GetLogsDir()
+ {
+ CreateDirectory(Constant.Logs);
+ return Constant.Logs;
+ }
///
/// 获取历史记录的文件路径