Log 写日志 C# winform

这段代码定义了一个名为LogHelper的静态类,用于管理和记录应用程序的日志信息。它从配置文件中读取日志路径,创建日志文件,并根据日期生成文件名。当发生异常时,LogHelper会捕获异常并记录到日志中,确保日志信息的完整性和可靠性。
摘要由CSDN通过智能技术生成

 <appSettings>
    <!-- 日志存放地址-->
    <add key="LogPath" value="C:\Log\" />
    <add key="windowName" value="LotInput"/>
    <add key="windowMainName" value="IMS Ver.3.0.2.5"/>

</appSettings>

public  class LogHelper
    {
        //日志文件目录路径 读取配置文件中的配置路径
        public static string strDicPath = System.Configuration.ConfigurationManager.AppSettings["LogPath"];

        static string strPath = string.Format("{0}", DateTime.Now.ToString("yyyyMMdd") + "log.txt");
        //私有构造函数

        static LogHelper()
        {
            //目录不存在自动创建

            if (!Directory.Exists(strDicPath))
            {
                Directory.CreateDirectory(strDicPath);
            }
        }

        /// <summary>
        /// 写入日志信息
        /// </summary>
        /// <param name="strList"></param>
        public static void WriteLog(params object[] strList)
        {
            if (strList.Length == 0)
            {
                return;
            }

            strPath = string.Format("{0}", DateTime.Now.ToString("yyyyMMdd") + "log.txt");
            try
            {
                strPath = strDicPath + strPath;
            }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
            catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
            {
                strPath = "C:\\temp\\log\\";
                strPath = strDicPath + strPath;
            }
            //自动创建文件 并追加信息

            using (FileStream stream = new FileStream(strPath, FileMode.Append))
            {
                lock (stream)
                {
                    StreamWriter writer = new StreamWriter(stream);
                    string content = "";
                    foreach (var str in strList)
                    {
                        content += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":" + str;
                    }
                    //写入内容
                    writer.WriteLine(content);
                    //关闭并消费流写入文件
                    writer.Close();
                    writer.Dispose();

                }
            }
        }

        /// <summary>
        /// 写入运行时错误

        /// </summary>
        /// <param name="strList"></param>
        /// <param name="ex"></param>
        public static void WriteErrLog(Exception ex, params object[] strList)
        {
            if (strList.Length == 0)
            {
                return;
            }
            strPath = string.Format("{0}", DateTime.Now.ToString("yyyyMMdd") + "log.txt");
            try
            {
                strPath = strDicPath + strPath;
            }
#pragma warning disable CS0168 // 声明了变量“ex1”,但从未使用过
            catch (Exception ex1)
#pragma warning restore CS0168 // 声明了变量“ex1”,但从未使用过
            {
                strPath = "C:\\temp\\log\\";
                strPath = strDicPath + strPath;
            }
            //自动创建文件 并追加信息

            using (FileStream stream = new FileStream(strPath, FileMode.Append))
            {
                lock (stream)
                {
                    StreamWriter writer = new StreamWriter(stream);
                    string content = "";
                    foreach (var str in strList)
                    {
                        content += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ": 程序运行时错误" + str;
                    }
                    //写入内容
                    writer.WriteLine(content + ":" + ex.Source.ToString());
                    //关闭并消费流写入文件
                    writer.Close();
                    writer.Dispose();

                }
            }
        }


    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值