log4net动态配置

时间:2011-07-07 16:04:53

标签: log4net log4net-configuration

我有一个VB控制台应用程序,我正在尝试动态命名我的FileAppender的log4net输出文件。

正在创建日志文件并且它具有正确的内容,问题是正在使用名称“%property {LogFilePath}”创建文件。换句话说,它根本就没有进行字符串替换。

在app.config中:

<log4net>
    <appender name="myAppender" type="log4net.Appender.FileAppender">
        <file value="%property{LogFilePath}" />
        <appendToFile value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level - %message%newline" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="myAppender" />
    </root>
</log4net>

在我的VB文件中:

Private _logger As ILog

Private Sub InitializeLogger()
    log4net.GlobalContext.Properties("LogFilePath") = "C:\Logs\myLog.log"
    XmlConfigurator.Configure()
    _logger = LogManager.GetLogger("myAppender")
End Sub

总结一下,正在创建日志文件并且它确实具有预期内容,唯一的问题是日志文件名保留为“%property {LogFilePath}”而不是被“C:\ Logs \”替换myLog.log“

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:2)

你能错过文件属性中的类型吗?

<file type="log4net.Util.PatternString" value="%property{LogFilePath}" />

有关详细信息,请参阅此处:
http://logging.apache.org/log4net/release/sdk/log4net.Util.PatternString.html