输出日志到txt示例

下面写个记录日志的代码表示不服——来自创智博客14年的代码

/// <summary>
    /// 将日志输出到txt
    /// </summary>
    public partial class LogHelper
    {
        private static Queue<string> queue;
        public static void WriteLog(string msg)
        {
            //对写文件加锁,防止多个线程同时写文件时报异常
            //加锁问题:造成用户等待
            //lock ("a")
            //{
            //    File.AppendAllText(@"C:\Users\q1\Desktop\a.txt", msg);
            //}
            //解决等待:向内存中写,而不是硬盘中写,先写先读
            queue.Enqueue(msg);
        }

        static LogHelper()
        {
            queue = new Queue<string>(); 

            WriteDisk();
        }

        //定义一个方法,将内存中的错误消息写到硬盘上
        private static void WriteDisk()
        {
            Thread t=new Thread(() =>
            {
                while (true)
                {
                    if (queue.Count > 0)
                    {
                        string msg = queue.Dequeue();
                        File.AppendAllText(@"C:\Users\q1\Desktop\a.txt", msg+"\r\n---------------------------------\r\n");
                    }
                    else
                    {
                        Thread.Sleep(5000);
                    }
                }
            });
            t.IsBackground = true;
            t.Start();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值