C# 日志文件存储
-
思路:直接对txt文件内容进行存储即可。
-
存储时,手动设置存储内容。
-
核心程序
/// <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(); } } } }
-
多线程测试代码
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); } });
-
OK。功能完成。
-
日志效果
[ 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