Ver Fonte

【软件版本】
V
【模块名称】

【问题原因】
Log分开3个文件存储不方便查询与分析。
【修改描述】
将分开的3个log文件合并成一个。
【测试结果】

sat23 há 3 anos atrás
pai
commit
d36622edcc
1 ficheiros alterados com 28 adições e 20 exclusões
  1. 28 20
      SCBC Factory Tools/LogHelper/Writelog.cs

+ 28 - 20
SCBC Factory Tools/LogHelper/Writelog.cs

@@ -26,19 +26,19 @@ namespace SXLibrary
         public static void WriteInfoLog(string msg)
         {
             Monitor.Enter(MsgQueue);
-            MsgQueue.Enqueue(string.Format("{0}[{1}]{2}\r\n", " Info", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), msg));
+            MsgQueue.Enqueue(string.Format("[{0}][{1}]{2}\r\n", DateTime.Now.ToString("HH:mm:ss fff"), "Info", msg));
             Monitor.Exit(MsgQueue);
         }
         public static void WriteErrorLog(string msg)
         {
             Monitor.Enter(MsgQueue);
-            MsgQueue.Enqueue(string.Format("{0}[{1}]{2}\r\n", "Error", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), msg));
+            MsgQueue.Enqueue(string.Format("[{0}][{1}]{2}\r\n", DateTime.Now.ToString("HH:mm:ss fff"), "Error", msg));
             Monitor.Exit(MsgQueue);
         }
         public static void WriteDebugLog(string msg)
         {
             Monitor.Enter(MsgQueue);
-            MsgQueue.Enqueue(string.Format("{0}[{1}]{2}\r\n", "Debug", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), msg));
+            MsgQueue.Enqueue(string.Format("[{0}][{1}]{2}\r\n", DateTime.Now.ToString("HH:mm:ss fff"), "Debug", msg));
             Monitor.Exit(MsgQueue);
         }
 
@@ -49,14 +49,14 @@ namespace SXLibrary
         public static void WriteTimesdLog(string msg)
         {
             Monitor.Enter(MsgQueue);
-            MsgQueue.Enqueue(string.Format("{0}[{1}]{2}\r\n", "Times", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), msg));
+            MsgQueue.Enqueue(string.Format("{0}[{1}]{2}\r\n", "Times", DateTime.Now.ToString("HH:mm:ss fff"), msg));
             Monitor.Exit(MsgQueue);
         }
 
         public static void WriteGetKeyLog(string msg)
         {
             Monitor.Enter(MsgQueue);
-            MsgQueue.Enqueue(string.Format("{0}[{1}]{2}\r\n", "Keyrd", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), msg));
+            MsgQueue.Enqueue(string.Format("[{0}][{1}]{2}\r\n",  DateTime.Now.ToString("HH:mm:ss fff"), "HTTP", msg));
             Monitor.Exit(MsgQueue);
         }
 
@@ -72,33 +72,34 @@ namespace SXLibrary
 
                     Monitor.Enter(FileLock);
 
-                    string _path;
-                    if ( msg.StartsWith("COM") )
-                        _path = FilePath + msg.Substring(0, 10).Trim() + "\\" + DateTime.Now.ToString("yyyy-MM");
-                    else
+                    string _path = FilePath + DateTime.Now.ToString("yyyy-MM");
+                    if (msg.StartsWith("Times"))
+                    {
                         _path = FilePath + msg.Substring(0, 5).Trim() + "\\" + DateTime.Now.ToString("yyyy-MM");
+                        msg = msg.Remove(0, 5);
+                    }
 
                     if (!Directory.Exists(_path))
                     {
                         Directory.CreateDirectory(_path);
                     }
                     string fileName = _path + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
-                    msg = msg.Remove(0, 5);
                     var logStreamWriter = new StreamWriter(fileName, true);
                     logStreamWriter.WriteLine(msg);
                     logStreamWriter.Close();
                     logStreamWriter.Dispose();
                     Monitor.Exit(FileLock);
-                    if (GetFileSize(fileName) > 1024 * 2)
+                    // 大于10M时,备份日志文件;
+                    if (GetFileSize(fileName) > 10)
                     {
-                        CopyToBak(fileName);
+                        fileName = DateTime.Now.ToString("yyyy-MM-dd");
+                        CopyToBak(_path, fileName);
                     }
                 }
                 else
                 {
                     System.Threading.Thread.Sleep(5);
                 }
-
             }
         }
 
@@ -110,27 +111,34 @@ namespace SXLibrary
             {
                 Monitor.Enter(FileLock);
                 var myFs = new FileStream(fileName, FileMode.Open);
-                strRe = myFs.Length / 1024;
+                strRe = myFs.Length / 1048576;
                 myFs.Close();
                 myFs.Dispose();
                 Monitor.Exit(FileLock);
             }
             return strRe;
         }
-        private static void CopyToBak(string sFileName)
+        private static void CopyToBak(string dir, string sFileName)
         {
             int fileCount = 0;
-            string sBakName = "";
+            string strBackFile = dir + "\\bak";
+            string strOriginalFile = dir + "\\" + sFileName + ".log";
+
+            if (!Directory.Exists(strBackFile))
+            {
+                Directory.CreateDirectory(strBackFile);
+            }
+
             Monitor.Enter(FileLock);
             do
             {
                 fileCount++;
-                sBakName = sFileName + "." + fileCount + ".BAK";
+                strBackFile = dir + "\\bak\\" + sFileName + "-bak." + fileCount + ".log";
             }
-            while (File.Exists(sBakName));
+            while (File.Exists(strBackFile));
 
-            File.Copy(sFileName, sBakName);
-            File.Delete(sFileName);
+            File.Copy(strOriginalFile, strBackFile);
+            File.Delete(strOriginalFile);
             Monitor.Exit(FileLock);
         }
     }