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

要約すると、ログファイルが作成されており、期待される内容が含まれています。唯一の問題は、ログファイル名が「C:\ Logs \ myLog.log」に置き換えられるのではなく、「%property{LogFilePath}」のままであるということです。 「」

どんな助けでも大歓迎です:)

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 に答える