From 3f4f5650385d83a7290be2378fc26df4206eea3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=9A=E5=BD=AA?= <1315508912@qq.com>
Date: Thu, 14 Dec 2023 17:31:55 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E6=AD=A3=E7=A1=AE=E5=A4=84=E7=90=86?=
=?UTF-8?q?=E5=90=84=E4=B8=AA=E7=B3=BB=E7=BB=9F=E7=9A=84=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=B9=B6=E5=85=BC=E5=AE=B98.0=E4=B8=AD?=
=?UTF-8?q?=E6=96=AD=E6=80=A7=E5=8F=98=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
DownKyi.Core/Logging/LogManager.cs | 23 +++--------------------
DownKyi.Core/Storage/Constant.cs | 23 ++++++++++++++++++++++-
DownKyi.Core/Storage/StorageManager.cs | 12 +++++++++++-
3 files changed, 36 insertions(+), 22 deletions(-)
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;
+ }
///
/// 获取历史记录的文件路径