c++ - 如何使用 log4cplus 检索日志条目?

标签 c++ visual-c++ log4cplus

log4cplus 很强大,但我不知道如何用它检索日志条目?有什么特点吗? log4cplus 提供的任何 API 或类似的东西吗?提前致谢。

最佳答案

嗯,我不确定你到底想要什么。 log4cplus 文档为您提供了使用它的示例。例如:

BasicConfigurator config;
config.configure();

Logger logger = Logger::getInstance("mylogger");
LOG4CPLUS_WARN(logger, "Hello, World!");

这样你会在控制台上得到一个日志。如果你想配置 log4cplus 来记录文件中的内容,你可以使用这样的文件:

### logs.properties

# root logger

log4cplus.rootLogger=INFO, Main

# specific logger

log4cplus.logger.myloggerINFO, Main
log4cplus.additivity.mylogger=false

# appender that automatically rolls files

log4cplus.appender.Main=log4cplus::DailyRollingFileAppender
log4cplus.appender.Main.Schedule=DAILY
log4cplus.appender.Main.File=logs/mylogs.log
log4cplus.appender.Main.Append=true
log4cplus.appender.Main.MaxBackupIndex=100
log4cplus.appender.Main.MaxFileSize=100KB
log4cplus.appender.Main.layout=log4cplus::PatternLayout
log4cplus.appender.Main.layout.ConversionPattern=%D | %-5.5p | %-20.20c | %m|%n

在你的 C++ 程序中:

PropertyConfigurator config("logs.properties");
config.configure();

要记录一些东西,请使用提供的宏:

logger = Logger::getInstance("mylogger");

LOG4CPLUS_DEBUG(logger, message);
LOG4CPLUS_WARN(logger, message);
LOG4CPLUS_INFO(logger, message);
LOG4CPLUS_ERROR(logger, message);

参见 log4cplus examples开始。如果您需要更多信息,请告诉我。

我的 2 美分

编辑:

Well 日志的存储取决于您的 appender。您可以拥有一个标准文件 (FileAppender) 或一组文件 (RollingFileAppender) 等。这样您就可以通过查看文件来查看旧日志。也可以使用系统日志,或者自己写appender

以编程方式,一种使用 DailyRollingFileAppender 的方式。然后您可以打开特定日期对应的文件,并通过读取文件内容来获取您的日志。

另一种方法是编写一个 log4cplus DBMS 附加程序并使用 SQL 库来读取它们。我知道没有标准的 API 可以重新登录 log4cplus。

关于c++ - 如何使用 log4cplus 检索日志条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201220/

相关文章:

c++ - C++中的不可中断函数

c++ - 图像数据的一个像素在内存中的表示

c++ - C++ 中的 STL 列表指针

visual-c++ - Visual C++/启用浮点异常后的奇怪行为(编译器错误?)

c++ - 在 VS2012 中使用时出现 log4cplus 链接错误

c++ - 无法编译项目 : error in locale. h 文件

c++ - 引用 VC++ 代码或转换为 DLL?

c++ - 派生类的析构函数发生了什么?

sockets - Log4cplus:SocketAppender 是否有加密选项?

html - 在 C++ linux 中使用 log4cplus 将日志写入 html 文件