在 WPF 中,使用控制台输出日志信息

原文链接:

在 WPF 中,使用控制台输出日志信息_SaylorLee 的博客 - CSDN 博客_wpf 打印日志

此方法仅在附加了 VS 调试时有效,直接运行(不管是 DEBUG 编译还是 RELEASE 编译)都无效。

核心代码

 public class ConsoleLogHelper
    {
    
    

        [System.Security.SuppressUnmanagedCodeSecurity]
        [DllImport("kernel32", CharSet = CharSet.Auto)]
        internal static extern bool AllocConsole();

        [System.Security.SuppressUnmanagedCodeSecurity]
        [DllImport("kernel32", CharSet = CharSet.Auto)]
        internal static extern bool FreeConsole();

        /// <summary>
        /// 在程序启动时,执行一次即可
        /// </summary>
        public static void OpenConsole()
        {
    
    
            try
            {
    
    
                var consoleTitle = "App Runtime Log";
                AllocConsole();
                Console.BackgroundColor = ConsoleColor.Black;

                Console.CursorVisible = false;
                Console.Title = consoleTitle;
            }
            catch (Exception)
            {
    
    
                throw;
            }
        }


        /// <summary>
        /// 该方法只在退出程序时,调用
        /// </summary>
        public static void CloseConsole()
        {
    
    
            FreeConsole();
        }

        public static void WriteLine(string msg)
        {
    
    
            Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            Console.WriteLine(msg);
            Console.ForegroundColor = ConsoleColor.White;
        }
        public static void WriteLineError(string msg)
        {
    
    
            Console.ForegroundColor = ConsoleColor.Red;
            WriteLine(msg);
        }

        public static void WriteLineError(Exception ex)
        {
    
    
            WriteLineError(ex.Message);
        }

        public static void WriteLineInfo(string msg)
        {
    
    
            Console.ForegroundColor = ConsoleColor.Cyan;
            WriteLine(msg);
        }

    }

在 WPF 中,使用控制台输出日志信息_SaylorLee 的博客 - CSDN 博客_wpf 打印日志

WPF 使用 Console.Write 打印信息到控制台窗口中 - 谢呈勖 - 博客园

猜你喜欢

转载自blog.csdn.net/lj22377/article/details/127421269