浏览代码

Console输出添加换行格式化,Log输出添加换行格式化

yuzhengyang 7 年之前
父节点
当前提交
7f0c3357cb

+ 13 - 12
Azylee.Utils/Azylee.Core/LogUtils/SimpleLogUtils/Log.cs

@@ -144,6 +144,8 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         {
             try
             {
+                message = Cons.FormatLine(message); //处理日志信息(换行)
+
                 Cons.SetColor(GetColor(type), ConsoleColor.Black);
                 Console.WriteLine(LOG_FORMAT, DateTime.Now.ToString(TIME_FORMAT), type.ToString(), message);
                 Cons.ResetColor();
@@ -166,8 +168,7 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
                 //创建日志目录
                 DirTool.Create(filePath);
                 //处理日志信息(换行)
-                //string[] loglines = log.Message.Split(new[] { "\r\n", "\n\r", Environment.NewLine }, StringSplitOptions.None);
-                //log.Message = String.Join<string>($"{Environment.NewLine}{new string(' ', 18)}└", loglines);
+                log.Message = Cons.FormatLine(log.Message);
                 //写出日志
                 TxtTool.Append(
                     file,
@@ -278,10 +279,10 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         public void V<T>(T msg)
         {
             if ((ConsoleLogLevel & LogLevel.Verbose) == LogLevel.Verbose)
-                WriteConsole(LogType.v, msg.ToString());
+                WriteConsole(LogType.v, msg?.ToString());
 
             if ((FileLogLevel & LogLevel.Verbose) == LogLevel.Verbose)
-                WriteFile(new LogModel() { Type = LogType.v, Message = msg.ToString(), CreateTime = DateTime.Now });
+                WriteFile(new LogModel() { Type = LogType.v, Message = msg?.ToString(), CreateTime = DateTime.Now });
         }
         /// <summary>
         /// 输出 Debug (调试信息)
@@ -290,10 +291,10 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         public void D<T>(T msg)
         {
             if ((ConsoleLogLevel & LogLevel.Debug) == LogLevel.Debug)
-                WriteConsole(LogType.d, msg.ToString());
+                WriteConsole(LogType.d, msg?.ToString());
 
             if ((FileLogLevel & LogLevel.Debug) == LogLevel.Debug)
-                WriteFile(new LogModel() { Type = LogType.d, Message = msg.ToString(), CreateTime = DateTime.Now });
+                WriteFile(new LogModel() { Type = LogType.d, Message = msg?.ToString(), CreateTime = DateTime.Now });
         }
         /// <summary>
         /// 输出 Information (重要信息)
@@ -302,10 +303,10 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         public void I<T>(T msg)
         {
             if ((ConsoleLogLevel & LogLevel.Information) == LogLevel.Information)
-                WriteConsole(LogType.i, msg.ToString());
+                WriteConsole(LogType.i, msg?.ToString());
 
             if ((FileLogLevel & LogLevel.Information) == LogLevel.Information)
-                WriteFile(new LogModel() { Type = LogType.i, Message = msg.ToString(), CreateTime = DateTime.Now });
+                WriteFile(new LogModel() { Type = LogType.i, Message = msg?.ToString(), CreateTime = DateTime.Now });
         }
         /// <summary>
         /// 输出 Warning (警告信息)
@@ -314,10 +315,10 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         public void W<T>(T msg)
         {
             if ((ConsoleLogLevel & LogLevel.Warning) == LogLevel.Warning)
-                WriteConsole(LogType.w, msg.ToString());
+                WriteConsole(LogType.w, msg?.ToString());
 
             if ((FileLogLevel & LogLevel.Warning) == LogLevel.Warning)
-                WriteFile(new LogModel() { Type = LogType.w, Message = msg.ToString(), CreateTime = DateTime.Now });
+                WriteFile(new LogModel() { Type = LogType.w, Message = msg?.ToString(), CreateTime = DateTime.Now });
         }
         /// <summary>
         /// 输出 Error (错误信息)
@@ -326,10 +327,10 @@ namespace Azylee.Core.LogUtils.SimpleLogUtils
         public void E<T>(T msg)
         {
             if ((ConsoleLogLevel & LogLevel.Error) == LogLevel.Error)
-                WriteConsole(LogType.e, msg.ToString());
+                WriteConsole(LogType.e, msg?.ToString());
 
             if ((FileLogLevel & LogLevel.Error) == LogLevel.Error)
-                WriteFile(new LogModel() { Type = LogType.e, Message = msg.ToString(), CreateTime = DateTime.Now });
+                WriteFile(new LogModel() { Type = LogType.e, Message = msg?.ToString(), CreateTime = DateTime.Now });
         }
         #endregion
     }

+ 13 - 6
Azylee.Utils/Azylee.Core/WindowsUtils/ConsoleUtils/Cons.cs

@@ -36,12 +36,7 @@ namespace Azylee.Core.WindowsUtils.ConsoleUtils
                 case ConsColorMode.Dark: bodycolor = ConsoleColor.White; bodybgcolor = ConsoleColor.Black; break;
                 case ConsColorMode.Light: bodycolor = ConsoleColor.Black; bodybgcolor = ConsoleColor.White; break;
             }
-            try
-            {
-                //string[] lines = value.Split(new[] { "\r", "\n", "\r\n", "\n\r", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
-                //value = String.Join<string>($"{Environment.NewLine}{new string(' ', 18)}└", lines);
-            }
-            catch { }
+            value = FormatLine(value);
             #endregion
 
 
@@ -79,6 +74,18 @@ namespace Azylee.Core.WindowsUtils.ConsoleUtils
             try { Console.WriteLine(value); } catch { }
         }
 
+        public static string FormatLine(string value)
+        {
+            string s = value;
+            try
+            {
+                s = s.Replace("\n\r", "\n").Replace("\r\n", "\n").Replace("\r", "\n");
+                string[] lines = s.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
+                s = String.Join<string>($"{Environment.NewLine}{new string(' ', 18)}L> ", lines);
+            }
+            catch { s = value; }
+            return s;
+        }
         public static void SetColor(ConsoleColor color, ConsoleColor bgcolor)
         {
             try

+ 19 - 14
Azylee.Utils/Tests/Test.ProcessTool/Program.cs

@@ -1,4 +1,5 @@
 using Azylee.Core.AppUtils;
+using Azylee.Core.LogUtils.SimpleLogUtils;
 using Azylee.Core.ThreadUtils.SleepUtils;
 using Azylee.Core.WindowsUtils.ConsoleUtils;
 using Azylee.Core.WindowsUtils.ShortcutUtils;
@@ -13,20 +14,24 @@ namespace Test.ProcessTool
     {
         static void Main(string[] args)
         {
-            ShortcutTool.Create(
-                Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
-                "测试创建快捷方式",
-                @"D:\CoCo\GitHub\Fork\Azylee.Utils\Tests\Test.ProcessTool\bin\Debug\Test.ProcessTool.exe");
-            Cons.Print("测试 Default 测试");
-            Cons.Print("测试 Muted 测试", ConsColorMode.Muted);
-            Cons.Print("测试 Primary 测试", ConsColorMode.Primary);
-            Cons.Print("测试 Secondary 测试", ConsColorMode.Secondary);
-            Cons.Print("测试 Success 测试", ConsColorMode.Success);
-            Cons.Print("测试 Info 测试", ConsColorMode.Info);
-            Cons.Print("测试 Warning 测试", ConsColorMode.Warning);
-            Cons.Print("测试 Danger 测试", ConsColorMode.Danger);
-            Cons.Print("测试 Dark 测试", ConsColorMode.Dark);
-            Cons.Print("测试 Light 测试", ConsColorMode.Light);
+            Log log = new Log(LogLevel.All, LogLevel.Information);
+
+            Cons.Log("测试 Default 测试");
+            log.V<string>(null);
+            Cons.Log("测试 Muted 测试\r\n\r\n测试 Muted 测试\r\n\r\n测试 Muted 测试\r\n\r\n测试 Muted 测试", ConsColorMode.Muted);
+            log.V("测试 Log V \r\n\r\n 测试 Log V \r\n\r\n 测试 Log V \r\n\r\n");
+
+            Cons.Log("测试 Muted 测试\r\n\r\n测试 Muted 测试\r\n\r\n测试 Muted 测试\r\n\r\n测试 Muted 测试", ConsColorMode.Muted);
+            log.I("测试 Log V \r\n\r\n 测试 Log V \r\n\r\n 测试 Log V \r\n\r\n");
+
+            Cons.Log("测试 Primary 测试", ConsColorMode.Primary);
+            Cons.Log("测试 Secondary 测试", ConsColorMode.Secondary);
+            Cons.Log("测试 Success 测试", ConsColorMode.Success);
+            Cons.Log("测试 Info 测试", ConsColorMode.Info);
+            Cons.Log("测试 Warning 测试", ConsColorMode.Warning);
+            Cons.Log("测试 Danger 测试", ConsColorMode.Danger);
+            Cons.Log("测试 Dark 测试", ConsColorMode.Dark);
+            Cons.Log("测试 Light 测试", ConsColorMode.Light);
 
             Console.WriteLine();
             Console.WriteLine("====================");