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/