如何从 log4cxx 获取 RollingFileAppender 的日志记录目录?

How can I get the logging directory of a RollingFileAppender from log4cxx?

提问人:Alex 提问时间:10/12/2022 最后编辑:Alex 更新时间:10/13/2022 访问量:55

问:

我正在使用XML来配置log4cxx。appender 是一个输出到类似 的文件夹,我需要知道程序末尾的文件夹是什么。RollingFileAppenderyyyy/MM/dd/HHmm

我无法在运行时获取当前值,因为该值可能与创建日志目录时的值不同。在浏览了 log4cxx 的文档后,我只发现了一个相关的函数:yyyy/MM/dd/HHmm

log4cxx::FileAppender::getFile()

返回 appender 记录到的文件。

这样做的问题是,如果我知道这是最终类型,我可以将其转换为 s-,但这会给程序带来不确定性。真的没有办法从 log4cxx 获取当前日志目录吗?
log4cxx::Logger::getAppender()AppenderPtrdynamic_castFileAppender

谢谢!

C++ 日志4CXX

评论


答:

0赞 rm5248 10/13/2022 #1

目前没有(简单的)方法可以获取 RollingFileAppender 正在使用的文件名。

使用是获得您正在寻找的正确 appender 的最佳方式。由于追加器都应该具有唯一的名称,因此强制转换为正确的类型应该没有任何问题。如果希望安全强制转换,请使用 which 在无法将对象强制转换为正确类型时返回无效指针。Logger::getAppender()log4cxx::cast<FileAppender>( AppenderPtr )