2

我有一个 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”替换"

任何帮助将不胜感激 :)

4

1 回答 1

2

您是否会丢失文件属性中的类型?

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

有关更多详细信息,请参见:http:
//logging.apache.org/log4net/release/sdk/log4net.Util.PatternString.html

于 2011-07-07T18:53:00.297 回答