可替代log4j日志的c#简单日志类队列实现类代码分享


下面是一个简单的C#日志类实现,它使用了队列来存储日志消息,并提供了一个方法来添加日志消息和另一个方法来遍历队列并输出日志。请注意,这个实现主要是为了展示如何使用队列,并不包括文件写入、异步日志记录或复杂的日志级别处理等高级功能。


using System;
using System.Collections.Generic;

public class SimpleLogQueue
{
    private readonly Queue<string> _logQueue = new Queue<string>();

    // 添加日志到队列
    public void Log(string message)
    {
        _logQueue.Enqueue(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " - " + message);
    }

    // 遍历队列并输出日志
    public void DisplayLogs()
    {
        while (_logQueue.Count > 0)
        {
            Console.WriteLine(_logQueue.Dequeue());
        }
    }

    // 示例使用
    public static void Main(string[] args)
    {
        var logQueue = new SimpleLogQueue();

        logQueue.Log("这是一条测试日志");
        logQueue.Log("这是另一条测试日志");

        // 假设在某个时刻,你想查看所有日志
        logQueue.DisplayLogs();

        // 再次添加一些日志
        logQueue.Log("更多日志...");

        // 再次查看日志
        logQueue.DisplayLogs();
    }
}

这个类`SimpleLogQueue`有一个内部队列`_logQueue`来存储日志消息。`Log`方法用于将新的日志消息(带有时间戳)添加到队列中。`DisplayLogs`方法会遍历队列并输出所有的日志消息,然后清空队列(如果你希望保留日志,请移除`Dequeue`调用)。

请注意,这个实现主要是为了教学目的,对于生产环境中的日志记录需求,你可能需要考虑使用更成熟的日志库,如NLog、log4net或Serilog等,这些库提供了丰富的日志管理功能,如日志级别、日志轮转、异步写入等。