C# 实现简单的日志工具类

简介: 这是一个C#文件日志类,支持按日期生成日志文件,提供Info、Warn、Error三种级别记录功能,线程安全且使用简单,适用于各类应用程序的日志记录需求。
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("数据库连接失败");
    }
}
相关文章
|
2天前
|
安全 C#
C# 泛型:实现类型安全的通用代码
泛型通过类型参数(如T)实现类型通用性,可定义不指定具体类型的类或方法,使用时再确定类型。示例中,Swap<T>方法可交换任意同类型变量,List<T>集合避免装箱拆箱,提升性能与安全。
|
2天前
|
C#
C# 字符串操作:常用方法汇总(含案例)
C# 提供丰富的字符串操作方法,如拼接、截取、替换和判断等。本文通过工具类案例演示如何高效处理字符串,提升开发效率与代码可读性。
|
2天前
|
C# UED
C# 制作控制台版验证码认证(核心案例)
验证码用于防止恶意操作,控制台程序通过生成随机字符实现验证功能。用户输入验证码后系统比对,支持多次尝试并提示剩余机会,错误过多则认证失败,确保安全性与用户体验平衡。(236字符)
|
2天前
|
开发框架 .NET Java
C# LINQ:简化集合查询(基础用法)
LINQ是C#中集成的查询功能,可简洁高效地查询集合、数据库等数据源。通过示例演示了过滤、排序、分组、投影和聚合操作,展现其在处理产品列表时的强大与便捷。
|
2天前
|
安全 C#
C# 实现简单的单例模式(懒汉式)
单例模式确保一个类仅存在一个实例,并提供全局访问点。通过私有构造函数防止外部实例化,结合静态属性和延迟初始化实现线程安全的唯一实例,常用于日志、配置管理等场景。
|
2天前
|
C#
C# 日期时间操作:格式化与计算
DateTime类用于处理日期时间操作,支持格式化输出、加减计算及获取特定日期(如本月第一天)。示例代码展示了常用功能:格式化、计算日期差、增减天数等,便于高效处理时间数据。
|
2天前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
2天前
|
C# 图形学 Windows
C# 制作 Windows Forms 图形验证码(带干扰线)
WinForms图形验证码利用Graphics绘制字符、干扰线与噪点,支持刷新及随机颜色、旋转,增强防破解能力,提升安全性。
|
2天前
|
安全 C#
C# 实现文本文件批量重命名工具
批量重命名工具可统一修改文件夹内文件名,支持添加前缀或替换关键词。通过C#代码实现,安全高效,避免文件覆盖,适用于大量文件的命名整理,操作简单便捷。
|
2天前
|
C#
C# 实现简单的计算器(控制台版)
本案例实现一个控制台计算器,支持加减乘除四则运算,具备输入验证功能,可捕获无效输入与除零异常,确保程序稳定运行。

热门文章

最新文章