【问题标题】:Using Log4j CompositeTriggeringPolicy feature with log4CXX将 Log4j CompositeTriggeringPolicy 功能与 log4CXX 一起使用
【发布时间】:2011-08-24 15:59:40
【问题描述】:

我想在 appender 中结合滚动时间和滚动大小,log4cxx 中似乎没有复合滚动,对吗?

【问题讨论】:

    标签: c++ log4cxx


    【解决方案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);
    

    方法,您可以在其中迭代选项字符串并执行必要的初始化操作。

    希望能在适当的时候提供帮助。

    【讨论】:

      猜你喜欢
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 2012-11-27
      • 2017-03-22
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      相关资源
      最近更新 更多