记录multi =线程服务器组件

时间:2010-12-19 15:01:05

标签: c++ multithreading logging

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

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

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

或者我应该自己实施一切? (不记录任何选项)

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

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

1 个答案:

答案 0 :(得分:2)

看一下Apache log4cxx。这是一个很棒的伐木库!