【问题标题】:Logging for multi=threaded server component多线程服务器组件的日志记录
【发布时间】:2010-12-19 15:01:05
【问题描述】:

我有一个用 C++ 编写的多线程服务器应用程序,我需要实现一个良好且相当高效的日志记录系统。高效我的意思是无论配置多少日志,应用程序都不应该停止。所以最好有一些线程专门用于编写它的日志文件。

我想将服务器组件处理的每个请求记录在它自己的文件中,有一个轮换系统可以删除比某个阈值更早的文件。一个请求由 2 个线程处理,一个执行一些转换工作,一个工作线程是线程池(BOOST 线程池)的一部分,它执行所有其他操作(数据库获取、计算等)。所以日志记录需要是线程安全的,我必须能够为级别配置它,并让每个 Logger 类实例(我自己的实现某个库的记录器)接受一个新的文件名。以便为特定请求创建每个新的 Logger 实例。

我的最终问题是:哪个日志库允许我为每个请求创建一个新的日志文件并允许我配置日志级别? (即:错误、警告、严重等)

或者我应该自己实现所有内容? (不记录不是一种选择)

我查看了 Boost::Logging v2,由于保存所有状态(级别、文件)的主记录器对象是全局的,因此我无法更改每个请求的文件。

我查看了 templog.org,但我什至无法编译。无论我包含什么或设置了哪些引用,它都永远找不到 templog 命名空间或其任何类。

【问题讨论】:

    标签: c++ multithreading logging


    【解决方案1】:

    看看 Apache log4cxx。这是一个很棒的日志库!

    【讨论】:

    • 这是一个 .NET 日志库,我在 C++ 库之后
    • 它很好地存在于 .net 中,但也适用于 Java、c++ 和 PHP。看起来更好;-)
    • 我将您的链接重命名为 log4cxx 而不是 log4net。我同意,这是一个很棒的图书馆。我已经在几个项目中使用过它。
    猜你喜欢
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2011-03-08
    • 2010-12-02
    相关资源
    最近更新 更多