C# 日志文件存储

C# 日志文件存储

  1. 思路:直接对txt文件内容进行存储即可。

  2. 存储时,手动设置存储内容。

  3. 核心程序

    	/// <summary>
        /// 日志系统
        /// </summary>
        public class LogAct
        {
    
            /// <summary>
            /// 普通日志
            /// </summary>
            /// <param name="className">类名</param>
            /// <param name="info">日志记录</param>
            public static void Info(string className, string info)
            {
                WriteLog("INFO", className, info);
            }
    
            /// <summary>
            /// 警告日志
            /// </summary>
            /// <param name="className">类名</param>
            /// <param name="info">日志记录</param>
            public static void Warn(string className, string info)
            {
                WriteLog("WARN", className, info);
            }
    
            /// <summary>
            /// 错误日志
            /// </summary>
            /// <param name="className">类名</param>
            /// <param name="info">日志记录</param>
            public static void Error(string className, string info)
            {
                WriteLog("ERROE", className, info);
            }
    
            /// <summary>
            /// 锁对象【支持多线程访问】
            /// </summary>
            static object lockObject = new object();
    
            /// <summary>
            /// 写入日志
            /// </summary>
            /// <param name="className">类名</param>
            /// <param name="infoLevel">日志级别</param>
            /// <param name="info">日志记录</param>
            private static void WriteLog(string className, string infoLevel, string info)
            {
                lock (lockObject)
                {
                    string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "/logs";
                    if (!Directory.Exists(logFilePath))
                    {
                        Directory.CreateDirectory(logFilePath);
                    }
                    string logFileName = logFilePath + "/" + "log_" + DateTime.Now.ToString("yyyyMMdd") + ".log";
                    if (!File.Exists(logFileName))
                    {
                        File.Create(logFileName).Close();
                    }
                    string logFormat = string.Format("[ {0} ] {1}  {2}  {3}",
                                                   DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"),
                                                   className, infoLevel, info);
                    using (StreamWriter sw= File.AppendText(logFileName))
                    {
                        sw.WriteLine(logFormat);
                        sw.Flush();
                        sw.Close();
                    }
                    
                }
    
            }
        }
    
  4. 多线程测试代码

      			Task.Run(() =>
                {
                    for (int i = 0; i < 20; i++)
                    {
                        LogAct.Info(typeof(App).Name, "程序已经启动"+i);
                    }
                });
    
                Task.Run(() =>
                {
                    for (int i = 0; i < 20; i++)
                    {
                        LogAct.Info(typeof(App).Name, "-----85程序已经启动" + i);
                    }
                });
    
  5. OK。功能完成。

  6. 日志效果

    [ 2020-03-23 16:59:02 587 ] INFO  App  程序已经启动0
    [ 2020-03-23 16:59:02 614 ] INFO  App  -----85程序已经启动0
    [ 2020-03-23 16:59:02 618 ] INFO  App  -----85程序已经启动1
    [ 2020-03-23 16:59:02 623 ] INFO  App  程序已经启动1
    [ 2020-03-23 16:59:02 628 ] INFO  App  程序已经启动2
    [ 2020-03-23 16:59:02 633 ] INFO  App  -----85程序已经启动2
    [ 2020-03-23 16:59:02 641 ] INFO  App  -----85程序已经启动3
    [ 2020-03-23 16:59:02 647 ] INFO  App  程序已经启动3
    [ 2020-03-23 16:59:02 655 ] INFO  App  程序已经启动4
    [ 2020-03-23 16:59:02 660 ] INFO  App  -----85程序已经启动4
    [ 2020-03-23 16:59:02 666 ] INFO  App  -----85程序已经启动5
    [ 2020-03-23 16:59:02 672 ] INFO  App  程序已经启动5
    [ 2020-03-23 16:59:02 679 ] INFO  App  程序已经启动6
    [ 2020-03-23 16:59:02 687 ] INFO  App  -----85程序已经启动6
    [ 2020-03-23 16:59:02 692 ] INFO  App  -----85程序已经启动7
    [ 2020-03-23 16:59:02 696 ] INFO  App  程序已经启动7
    [ 2020-03-23 16:59:02 701 ] INFO  App  程序已经启动8
    [ 2020-03-23 16:59:02 709 ] INFO  App  -----85程序已经启动8
    [ 2020-03-23 16:59:02 716 ] INFO  App  -----85程序已经启动9
    [ 2020-03-23 16:59:02 724 ] INFO  App  程序已经启动9
    [ 2020-03-23 16:59:02 732 ] INFO  App  -----85程序已经启动10
    [ 2020-03-23 16:59:02 744 ] INFO  App  程序已经启动10
    [ 2020-03-23 16:59:02 749 ] INFO  App  程序已经启动11
    [ 2020-03-23 16:59:02 754 ] INFO  App  程序已经启动12
    [ 2020-03-23 16:59:02 759 ] INFO  App  -----85程序已经启动11
    [ 2020-03-23 16:59:02 764 ] INFO  App  -----85程序已经启动12
    [ 2020-03-23 16:59:02 768 ] INFO  App  -----85程序已经启动13
    [ 2020-03-23 16:59:02 773 ] INFO  App  程序已经启动13
    [ 2020-03-23 16:59:02 778 ] INFO  App  程序已经启动14
    [ 2020-03-23 16:59:02 782 ] INFO  App  程序已经启动15
    [ 2020-03-23 16:59:02 787 ] INFO  App  -----85程序已经启动14
    [ 2020-03-23 16:59:02 796 ] INFO  App  -----85程序已经启动15
    [ 2020-03-23 16:59:02 802 ] INFO  App  程序已经启动16
    [ 2020-03-23 16:59:02 809 ] INFO  App  程序已经启动17
    [ 2020-03-23 16:59:02 814 ] INFO  App  -----85程序已经启动16
    [ 2020-03-23 16:59:02 819 ] INFO  App  -----85程序已经启动17
    [ 2020-03-23 16:59:02 828 ] INFO  App  程序已经启动18
    [ 2020-03-23 16:59:02 833 ] INFO  App  程序已经启动19
    [ 2020-03-23 16:59:02 840 ] INFO  App  -----85程序已经启动18
    [ 2020-03-23 16:59:02 845 ] INFO  App  -----85程序已经启动19
    

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值