【问题标题】:Configure RollingFileAppender Date rolling programmatically以编程方式配置 RollingFileAppender 日期滚动
【发布时间】:2009-03-04 16:57:21
【问题描述】:

我正在以编程方式在 log4net 中配置 RollingFileAppender。我目前有这样的事情:

RollingFileAppender fa = new RollingFileAppender();
fa.AppendToFile = true;
fa.RollingStyle = RollingFileAppender.RollingMode.Date;
fa.DatePattern = "yyyyMMdd";
fa.StaticLogFileName = true;
// Set more properties and add the appender to the root repository

这拒绝基于日期滚动日志。如果我将 RollingStyle 切换为 Size 或 Composite,它将滚动,但仅基于大小,而不是基于日期。我尝试删除 StaticLogFileName 并使用 DatePattern 无济于事。

我必须以编程方式配置它,因为我不知道运行时附加器的数量,因此使用 XML 配置它是不行的,我过去已经能够使用它。有人有什么想法吗?我错过了什么吗?

【问题讨论】:

    标签: log4net


    【解决方案1】:

    这种行为是因为 RollingFileAppender(以及许多其他附加程序以及过滤器)实现了 the IOptionHandler interface,它“允许对象推迟激活其选项,直到所有选项都已设置。这是组件所必需的在所有设置完成之前,相关选项仍然模棱两可”。

    进一步:“在设置配置属性后,必须在此对象上调用 ActivateOptions 方法。在调用 ActivateOptions 之前,此对象处于未定义状态,不得使用。”

    通过 xml 文件配置适配器时,您不必考虑激活,因为它是由 log4net 配置器完成的。

    【讨论】:

      【解决方案2】:

      我在设置文件附加程序之后但在将附加程序添加到层次结构之前添加了对 ActivateOptions() 的调用,这似乎有效。为什么有些选项在没有调用的情况下就卡住了,而另一些选项却没有,这是另一天的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-10
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-16
        • 2011-01-15
        相关资源
        最近更新 更多