51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
|
|
using System.Diagnostics;
|
||
|
|
using System.IO;
|
||
|
|
|
||
|
|
namespace PetWashControl.Services;
|
||
|
|
|
||
|
|
public class LogService
|
||
|
|
{
|
||
|
|
private readonly string _logFilePath;
|
||
|
|
|
||
|
|
public LogService()
|
||
|
|
{
|
||
|
|
var logDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs");
|
||
|
|
Directory.CreateDirectory(logDirectory);
|
||
|
|
_logFilePath = Path.Combine(logDirectory, $"log_{DateTime.Now:yyyyMMdd}.txt");
|
||
|
|
}
|
||
|
|
|
||
|
|
public void LogInfo(string message)
|
||
|
|
{
|
||
|
|
Log("INFO", message);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void LogWarning(string message)
|
||
|
|
{
|
||
|
|
Log("WARN", message);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void LogError(string message, Exception? ex = null)
|
||
|
|
{
|
||
|
|
var fullMessage = ex != null ? $"{message}\n{ex}" : message;
|
||
|
|
Log("ERROR", fullMessage);
|
||
|
|
}
|
||
|
|
|
||
|
|
private void Log(string level, string message)
|
||
|
|
{
|
||
|
|
var logMessage = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] [{level}] {message}";
|
||
|
|
|
||
|
|
// 输出到调试窗口
|
||
|
|
Debug.WriteLine(logMessage);
|
||
|
|
|
||
|
|
// 写入文件
|
||
|
|
try
|
||
|
|
{
|
||
|
|
File.AppendAllText(_logFilePath, logMessage + Environment.NewLine);
|
||
|
|
}
|
||
|
|
catch
|
||
|
|
{
|
||
|
|
// 忽略日志写入失败
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|