using System.IO; public enum LogLevel { Info, Warning, Error } public class FileLogger { private readonly string _logDir; private readonly object _lockObj = new object(); public FileLogger(string logDirectory = "Logs") { _logDir = logDirectory; if (!Directory.Exists(_logDir)) { Directory.CreateDirectory(_logDir); } } // 写入日志 public void Log(string message, LogLevel level = LogLevel.Info) { lock (_lockObj) { string fileName = Path.Combine(_logDir, $"Log_{DateTime.Now:yyyyMMdd}.txt"); string logContent = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] [{level}] {message}{Environment.NewLine}"; File.AppendAllText(fileName, logContent, Encoding.UTF8); } } // 快捷方法 public void Info(string message) => Log(message, LogLevel.Info); public void Warn(string message) => Log(message, LogLevel.Warning); public void Error(string message) => Log(message, LogLevel.Error); // 调用示例 public static void TestLogger() { var logger = new FileLogger(); logger.Info("程序启动"); logger.Warn("配置文件未找到,使用默认配置"); logger.Error("数据库连接失败"); } }