C# 日志类

C# 日志类

using System;
using System.IO;
using System.Text;

namespace Log
{
    public enum LogLevel
    { 
        DEBUG,
        INFO,
        ERROR,
        WARNING,
        TRACE
    };
    
    public class LogHelper
    {
        private static readonly string Path = AppDomain.CurrentDomain.BaseDirectory + "logs";
        private static readonly object _lock = new object();

        protected static void WriteLog(LogLevel level, string content)
        {
            try
            {
                lock (_lock)
                {
                    if (!Directory.Exists(Path)) Directory.CreateDirectory(Path);

                    string filename = System.IO.Path.Combine(Path, DateTime.Now.ToString("yyyy-MM-dd") + ".log");

                    string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
                    string line = $"[{time}] [{level}] {content}";

                    File.AppendAllText(filename, line + Environment.NewLine, Encoding.UTF8);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine($"日志记录失败: {ex.Message}");
            }
        }

        public static void Debug(string content) => WriteLog(LogLevel.DEBUG, content);
        public static void Info(string content) => WriteLog(LogLevel.INFO, content);
        public static void Error(string content) => WriteLog(LogLevel.ERROR, content);
        public static void Trace(string content) => WriteLog(LogLevel.TRACE, content);
        public static void Warning(string content) => WriteLog(LogLevel.WARNING, content);
    }
}

posted @ 2025-10-14 16:26  杰西卡若  阅读(7)  评论(0)    收藏  举报