динамическая конфигурация log4net - PullRequest
2 голосов
/ 07 июля 2011

У меня есть консольное приложение VB, и я пытаюсь динамически назвать выходной файл log4net моего FileAppender.

Файл журнала создается и имеет правильное содержимое, проблема в том, что файл создается с именем «% 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 Ответ

2 голосов
/ 07 июля 2011

Возможно, вам не хватает типа в вашем атрибуте файла?

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

См. Это для более подробной информации:
http://logging.apache.org/log4net/release/sdk/log4net.Util.PatternString.html

...