我想在 appender 中结合滚动时间和滚动大小,似乎 log4cxx 中没有复合滚动,对吗?
问问题
888 次
1 回答
1
不,没有。事实上,log4j 中也没有实现这样的组合策略,所以没有转移到 log4cxx 中。
我曾经有一个任务是编写这样的混合策略滚动文件附加程序(不过在 log4j 中)。我通过覆盖来做到这一点FileAppender
,尤其是。方法
// log4j
void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize);
// log4cxx
void setFile(const LogString& filename, bool append1, bool bufferedIO1, size_t bufferSize1, Pool& p);
在进程重新启动后继续记录到适当的日志块,并且
// log4j
void subAppend(LoggingEvent event);
// log4cxx
virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
在每个日志条目之后测试翻转条件是否为真。
在 log4j/cxx 中实现您自己的 appender 的一个真正强大的功能是您可以在其中定义其属性log4j.properties
并由库设置它们。在 Java 中,由于反射,您可以免费获得它;在 log4cxx 你只需要写你的
void setOption(const LogString& option, const LogString& value);
方法,您可以在其中迭代选项字符串并执行必要的初始化操作。
希望这会有所帮助并在正确的时间出现。
于 2011-09-09T20:11:48.200 回答