Browse Source

添加设置日志存储天数

yuzhengyang 7 years ago
parent
commit
9df4df548c

BIN
Fork.Net/.vs/Fork.Net/v15/Server/sqlite3/storage.ide


BIN
Fork.Net/.vs/Fork.Net/v15/sqlite3/storage.ide


+ 5 - 3
Fork.Net/Azylee.Utils/Azylee.Core/IOUtils/FileUtils/FileTool.cs

@@ -39,13 +39,15 @@ namespace Azylee.Core.IOUtils.FileUtils
         /// <returns></returns>
         public static List<string> GetFile(string path, string pattern = "*")
         {
-            if (Directory.Exists(path))
-                try
+            try
+            {
+                if (Directory.Exists(path))
                 {
                     List<string> result = Directory.EnumerateFiles(path, pattern).ToList();
                     return result;
                 }
-                catch (Exception e) { }
+            }
+            catch (Exception e) { }
             return null;
         }
         ///// <summary>

+ 10 - 11
Fork.Net/Azylee.Utils/Azylee.Core/LogUtils/SimpleLogUtils/Log.cs

@@ -46,16 +46,15 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         const string LOG_FORMAT = "{0}  {1}  {2}";
         const string TIME_FORMAT = "HH:mm:ss.fff";
         const string LOG_PATH = "log";
-        const int CACHE_DAYS = 30;//缓存天数
 
+        private int CACHE_DAYS = 30;//缓存天数
         private object LogFileLock = new object();//写日志文件锁
         private bool IsWriteFile = false;//是否写日志文件
         private string LogPath = AppDomain.CurrentDomain.BaseDirectory + LOG_PATH;
         public LogLevel LogLevel = LogLevel.All;//日志输出等级
         #endregion
 
-        public Log()
-        { }
+        public Log() { }
         public Log(bool isWrite, LogLevel level = LogLevel.All)
         {
             if (isWrite)
@@ -64,18 +63,18 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
                 LogLevel = level;
             }
         }
-        public bool SetWriteFile(string logPath, bool isWrite = true)
+
+        public void SetLogPath(string path)
         {
-            if (isWrite && !string.IsNullOrWhiteSpace(logPath))
+            if (!string.IsNullOrWhiteSpace(path))
             {
-                LogPath = logPath.Trim();
-                IsWriteFile = true;
-                return true;
+                LogPath = DirTool.Combine(path, LOG_PATH);
             }
-            IsWriteFile = false;
-            return false;
         }
-
+        public void SetCacheDays(int days)
+        {
+            if (days >= 0) CACHE_DAYS = days;
+        }
         #region Console 开启/关闭 API
         [DllImport("kernel32.dll")]
         public static extern Boolean AllocConsole();

+ 26 - 18
Fork.Net/Azylee.Utils/Azylee.Core/LogUtils/StatusLogUtils/StatusLog.cs

@@ -43,24 +43,30 @@ namespace Azylee.Core.LogUtils.StatusLogUtils
         #endregion
 
         #region 基础属性
-        const string LOG_PATH = @"log\status";//存储路径
-        const int CACHE_DAYS = 30;//缓存天数
+        const string LOG_PATH = @"log";//存储路径
 
+        private int CACHE_DAYS = 30;//缓存天数
         private string LogPath = AppDomain.CurrentDomain.BaseDirectory + LOG_PATH;//存储路径
-
-        DateTime Time = DateTime.Now;//标记当前时间
-        int Interval = 60 * 1000;//监测间隔时间
-
-        Task Listener = null;//监测任务
-        CancellationTokenSource CancelToken = new CancellationTokenSource();//监测取消Token
-        PerformanceCounter ComputerProcessor = ComputerStatusTool.Processor();//电脑CPU监控
-        PerformanceCounter AppProcessor = AppInfoTool.Processor();//程序CPU监控
+        private DateTime Time = DateTime.Now;//标记当前时间
+        private int Interval = 60 * 1000;//监测间隔时间
+        private Task Listener = null;//监测任务
+        private CancellationTokenSource CancelToken = new CancellationTokenSource();//监测取消Token
+        private PerformanceCounter ComputerProcessor = ComputerStatusTool.Processor();//电脑CPU监控
+        private PerformanceCounter AppProcessor = AppInfoTool.Processor();//程序CPU监控
         #endregion
 
         public void SetLogPath(string path)
         {
-            LogPath = path.Trim();
+            if (!string.IsNullOrWhiteSpace(path))
+            {
+                LogPath = DirTool.Combine(path, LOG_PATH);
+            }
         }
+        public void SetCacheDays(int days)
+        {
+            if (days >= 0) CACHE_DAYS = days;
+        }
+
         public bool Start()
         {
             //如果任务停止运行,则重新创建Token,并释放上次任务
@@ -117,8 +123,8 @@ namespace Azylee.Core.LogUtils.StatusLogUtils
             //创建目录
             DirTool.Create(path);
             //写出信息
-            IniTool.WriteValue(file,"system","ram", ComputerInfoTool.TotalPhysicalMemory().ToString());
-            IniTool.WriteValue(file,"system","drive", ComputerInfoTool.GetSystemDriveTotalSize().ToString());
+            IniTool.WriteValue(file, "system", "ram", ComputerInfoTool.TotalPhysicalMemory().ToString());
+            IniTool.WriteValue(file, "system", "drive", ComputerInfoTool.GetSystemDriveTotalSize().ToString());
         }
         /// <summary>
         /// 写出运行时状态信息
@@ -138,23 +144,25 @@ namespace Azylee.Core.LogUtils.StatusLogUtils
                     AppCpuPer = (int)AppProcessor.NextValue(),
                     AppRamUsed = AppInfoTool.RAM(),
                 };
-                //创建日志目录
-                DirTool.Create(LogPath);
                 //设置日志目录和日志文件
-                string file = DirTool.Combine(LogPath, DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
+                string path = DirTool.Combine(LogPath, "status");
+                string file = DirTool.Combine(path, DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
+                //创建日志目录
+                DirTool.Create(path);
                 //写出日志
                 TxtTool.Append(file, status.ToString());
 
                 Cleaner();
             }
-            catch { } 
+            catch { }
         }
         /// <summary>
         /// 清理过多的状态信息文件
         /// </summary>
         private void Cleaner()
         {
-            List<string> files = FileTool.GetFile(LogPath);
+            string path = DirTool.Combine(LogPath, "status");
+            List<string> files = FileTool.GetFile(path);
             if (ListTool.HasElements(files))
             {
                 files.ForEach(f =>

+ 2 - 0
Fork.Net/Test/Test.BlackBox/Form1.cs

@@ -11,12 +11,14 @@ namespace Test.BlackBox
         public Form1()
         {
             InitializeComponent();
+            Log.SetCacheDays(0);
         }
         private void Form1_Load(object sender, EventArgs e)
         {
         }
         private void BTStartBB_Click(object sender, EventArgs e)
         {
+            StatusLog.Instance.SetCacheDays(0);
             bool flag = StatusLog.Instance.Start();
             textBox1.AppendText(Environment.NewLine + (flag ? "启动成功" : "启动失败"));
         }