From 76eef0389848065963a295c66163a630697054fa Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 07 七月 2024 09:47:01 +0800
Subject: [PATCH] PDA
---
代码管理/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteLog.cs | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 173 insertions(+), 2 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteLog.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteLog.cs"
index 34f0b1f..e269dba 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteLog.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteLog.cs"
@@ -1,11 +1,14 @@
锘縰sing Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Net.Http.Json;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Core.Extensions;
namespace WIDESEA_Comm.LogInfo
{
@@ -14,12 +17,24 @@
/// </summary>
public partial class WriteLog
{
+ private int fileSize;
+ public static WriteLog log;
+ static string EquipName;
+ private string logFileName;
+ public string FileLogPath { set; get; }
/// <summary>
/// 鍐欏叆鏃ュ織(涓嶈澶氱嚎绋嬫搷浣滃悓涓�鏂囦欢锛屼竴涓澶囦竴涓枃浠跺す)
/// </summary>
public static void Write_Log(string groupName, string logName, string content, object data = null)
{
string basePath = System.Environment.CurrentDirectory + "/Log/" + $"/{groupName}/{DateTime.Now.ToString("yyyy_MM_dd")}";
+
+ #region 鍒犻櫎鏂囦欢澶瑰唴鎸囧畾鏃ユ湡鍓嶆枃浠跺す
+ string name = Environment.CurrentDirectory + "/Log/" + $"/{groupName}";
+ if (Directory.Exists(name))
+ DeleteFoldersOlderThan(name, DateTime.Now.AddDays(-30));
+ #endregion
+
//濡傛灉鏃ュ織鏂囦欢鐩綍涓嶅瓨鍦�,鍒欏垱寤�
if (!Directory.Exists(basePath))
{
@@ -27,7 +42,7 @@
}
try
{
- FileStream fs = new FileStream(basePath + "/" + logName + $"{DateTime.Now.ToString("yyyy_MM_dd")}_Log.txt", FileMode.Append);
+ FileStream fs = new FileStream(basePath + "/" + logName + $"_{DateTime.Now.ToString("yyyy_MM_dd")}_Log.txt", FileMode.Append);
StreamWriter strwriter = new StreamWriter(fs);
try
{
@@ -36,7 +51,8 @@
strwriter.WriteLine(content);
if (data != null)
{
- strwriter.WriteLine(JsonConvert.SerializeObject(data));
+ //strwriter.WriteLine(JsonConvert.SerializeObject(data));
+ strwriter.WriteLine(data);
}
strwriter.WriteLine("-------------------------------");
strwriter.WriteLine();
@@ -51,5 +67,160 @@
}
catch { }
}
+ public static WriteLog Info(string equipName)
+ {
+ EquipName = equipName;
+ //if (log == null)
+ log = new WriteLog("Info" + equipName);
+ log.FileLogPath = AppContext.BaseDirectory + "\\log\\Info\\" + DateTime.Now.ToString("yyyyMMdd") /*+ "\\" + EquipName + "_" + DateTime.Now.ToString("yyyyMMdd")*/ + "\\";
+
+ #region 鍒犻櫎鏂囦欢澶瑰唴鎸囧畾鏃ユ湡鍓嶆枃浠跺す
+ string name = AppContext.BaseDirectory + "\\log\\Info\\";
+ if (Directory.Exists(name))
+ DeleteFoldersOlderThan(name, DateTime.Now.AddDays(-30));
+ #endregion
+
+ return log;
+ }
+ private WriteLog(string equipName)
+ {
+ //鍒濆鍖栧ぇ浜�399M鏃ュ織鏂囦欢灏嗚嚜鍔ㄥ垹闄�;
+
+ this.fileSize = 2048 * 1024 * 200;//50M 2048 * 1024 * 200= 419430000瀛楄妭(b)=399.9996185鍏嗗瓧鑺�(mb)
+
+ //榛樿璺緞
+
+ //this.FileLogPath = AppContext.BaseDirectory + "\\log\\" + EquipName + "\\";
+ EquipName = equipName;
+ if (!string.IsNullOrEmpty(equipName))
+ this.logFileName = equipName + "_log" + DateTime.Now.ToString("yyyyMMdd") + ".log";
+ else
+ this.logFileName = "log" + DateTime.Now.ToString("yyyyMMdd") + ".log";
+ //this.logFileName = EquipName + "_log" + DateTime.Now.ToString("yyyyMMdd") + ".log";
+ }
+ object flag = new object();
+ public void Write(string Message, string equipName)
+ {
+ lock (flag)
+ {
+ if (!string.IsNullOrEmpty(equipName))
+ this.logFileName = equipName + "_log" + DateTime.Now.ToString("yyyyMMdd") + ".log";
+ else
+ this.logFileName = "log" + DateTime.Now.ToString("yyyyMMdd") + ".log";
+ this.Write(this.logFileName, Message, equipName);
+ }
+ }
+ public void Write(string LogFileName, string Message, string equipName)
+ {
+
+ //DirectoryInfo path=new DirectoryInfo(LogFileName);
+ //濡傛灉鏃ュ織鏂囦欢鐩綍涓嶅瓨鍦�,鍒欏垱寤�
+ if (!Directory.Exists(this.FileLogPath))
+ {
+ Directory.CreateDirectory(this.FileLogPath);
+ }
+
+ FileInfo finfo = new FileInfo(this.FileLogPath + LogFileName);
+ if (finfo.Exists && finfo.Length > fileSize)
+ {
+ finfo.Delete();
+ }
+ try
+ {
+ FileStream fs = new FileStream(this.FileLogPath + LogFileName, FileMode.Append);
+ StreamWriter strwriter = new StreamWriter(fs);
+ try
+ {
+
+ DateTime d = DateTime.Now;
+ strwriter.WriteLine("鏃堕棿:" + d.ToString());
+ strwriter.WriteLine(Message);
+ strwriter.WriteLine();
+ strwriter.Flush();
+ }
+ catch (Exception ee)
+ {
+ //Console.WriteLine("鏃ュ織鏂囦欢鍐欏叆澶辫触淇℃伅:" + ee.ToString());
+ }
+ finally
+ {
+ strwriter.Close();
+ strwriter = null;
+ fs.Close();
+ fs = null;
+ }
+ }
+ catch (Exception ee)
+ {
+ //Console.WriteLine("鏃ュ織鏂囦欢娌℃湁鎵撳紑,璇︾粏淇℃伅濡備笅:");
+ }
+ }
+
+ #region 鑷姩娓呴櫎鏃ュ織
+
+ /// <summary>
+ /// 鍒犻櫎鏂囦欢澶瑰唴鎸囧畾鏃ユ湡鍓嶆枃浠跺す
+ /// </summary>
+ /// <param name="folderPath"></param>
+ /// <param name="cutOffDate"></param>
+ public static void DeleteFoldersOlderThan(string folderPath, DateTime cutOffDate)
+ {
+ DirectoryInfo di = new DirectoryInfo(folderPath);
+ foreach (DirectoryInfo subDir in di.GetDirectories())
+ {
+ // 鑾峰彇鏂囦欢澶圭殑鏈�鍚庤闂椂闂�
+ DateTime lastAccess = subDir.CreationTime;
+ //DateTime lastAccess = subDir.LastAccessTime;
+
+ // 濡傛灉鏂囦欢澶圭殑鏈�鍚庤闂椂闂存棭浜庢垨绛変簬鎴鏃ユ湡锛屽垯鍒犻櫎璇ユ枃浠跺す
+ if (lastAccess <= cutOffDate)
+ {
+ try
+ {
+ Directory.Delete(subDir.FullName, true); // 閫掑綊鍒犻櫎鏂囦欢澶瑰強鍏跺唴瀹�
+ //Console.WriteLine($"鏂囦欢 {subDir.FullName} 宸插垹闄ゃ��");
+ }
+ catch (Exception ex)
+ {
+ //Console.WriteLine($"鏃犳硶鍒犻櫎鏂囦欢 {subDir.FullName}: {ex.Message}");
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鏂囦欢澶瑰唴鎸囧畾鏃ユ湡鍓嶆枃浠�
+ /// </summary>
+ /// <param name="directoryPath"></param>
+ /// <param name="cutOffDate"></param>
+ public static void DeleteFilesOlderThan(string directoryPath, DateTime cutOffDate)
+ {
+ DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
+
+ // 鑾峰彇鎵�鏈夋枃浠跺苟绛涢�夊嚭鍒涘缓鏃ユ湡鍦ㄦ寚瀹氭棩鏈熶箣鍓嶇殑鏂囦欢
+ FileInfo[] filesToDelete = directoryInfo.GetFiles()
+ .Where(f => f.CreationTime < cutOffDate).ToArray();
+
+ foreach (FileInfo file in filesToDelete)
+ {
+ try
+ {
+ file.Delete(); // 鍒犻櫎鏂囦欢
+ Console.WriteLine($"鏂囦欢 {file.FullName} 宸插垹闄ゃ��");
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"鏃犳硶鍒犻櫎鏂囦欢 {file.FullName}: {ex.Message}");
+ }
+ }
+ }
+
+ //public static void Main()
+ //{
+ // string path = @"C:\YourDirectoryPath"; // 鏇挎崲涓轰綘鐨勭洰褰曡矾寰�
+ // DateTime cutOff = new DateTime(2023, 3, 31); // 璁剧疆鍒犻櫎鏂囦欢鐨勬埅姝㈡棩鏈�
+ // DeleteFilesOlderThan(path, cutOff);
+ //}
+ #endregion
}
}
--
Gitblit v1.9.3