网站建设费 科研 类百度做网站需要多少钱
背景:
1.常见的官方日志模块项目过于复杂,且配置过于繁琐,针对这种现象,实现在大型项目中快速定位错误问题;
实现思路:
1.设置当前日志文件路径(获取到当前文件应用程序路径 + \ErrorLog)
2.判断当前日志文件路径是否存在,不存在则创建
3.在当前日志文件路径下创建日志文本
4.判断当前文件是否存在,如果不存在则创建,如果存在则增加
源码:
using System;
using System.IO;public class Logger
{private static StreamWriter streamWriter;// 日志级别public enum LogLevel{INFO,WARNING,ERROR} public static void WriteLog(LogLevel level, string message){try{string directoryPath = Environment.CurrentDirectory + "\\ErrorLog"; //在获得文件夹路径(根据你们自己的实际情况去写错误日志文件夹路径)// 判断文件夹是否存在,如果不存在则创建if (!Directory.Exists(directoryPath)){Directory.CreateDirectory(directoryPath);}string logFilePath = Path.Combine(directoryPath, $"{DateTime.Now.ToString("yyyy-MM-dd")}.log");// 判断文件是否存在,如果不存在则创建,如果存在则追加。using (streamWriter = !File.Exists(logFilePath) ? File.CreateText(logFilePath) : File.AppendText(logFilePath)){streamWriter.WriteLine("***********************************************************************");streamWriter.WriteLine(DateTime.Now.ToString("HH:mm:ss"));streamWriter.WriteLine($"Log Level: {level}");if (message != null){streamWriter.WriteLine($"Message:\r\n{message}");}}}finally{if (streamWriter != null){streamWriter.Flush();streamWriter.Dispose();streamWriter = null;}}}
}class Program
{static void Main(){// 测试单元Logger.WriteLog(Logger.LogLevel.INFO, "This is an informational message.");Logger.WriteLog(Logger.LogLevel.WARNING, "This is a warning message.");Logger.WriteLog(Logger.LogLevel.ERROR, "This is an error message with some additional information.");}
}