我有一个用C++编写的多线程服务器应用程序,我需要实现一个良好且相当高效的日志记录系统。我所说的高效,是指无论配置多少日志记录,应用程序都不应该停止工作。因此,最好有一些线程专门用于写入它的日志文件。
我希望将服务器组件处理的每个请求记录在它自己的文件中,并有一个轮换系统来删除早于某个阈值的文件。一个请求由两个线程处理,一个线程做一些转换工作,另一个工作线程是线程池(BOOST threadpool)的一部分,它执行所有其他操作(数据库获取、计算等)。因此,日志记录必须是threadsafe,并且我必须能够为级别配置它,并让每个Logger类实例(我自己的实现某个库的记录器)接受一个新的文件名。以便为特定请求创建每个新的Logger实例。
我的最终问题是:哪个日志库允许我为每个请求创建一个新的日志文件,并允许我配置日志级别?(即:错误、警告、严重等)
或者我应该自己实现所有的东西?(不能选择无日志记录)
我看过Boost::Logging v2,因为保存所有状态(级别、文件)的主记录器对象是全局的,所以我不能为每个请求更改文件。
我看过templog.org,但我甚至不能编译它。无论我包含什么或设置了哪些引用,它都永远找不到templog名称空间或它的任何类。
发布于 2010-12-19 23:06:39
看看Apache log4cxx。这是一个很棒的日志库!
https://stackoverflow.com/questions/4483506
复制相似问题