Свойство% log4net не работает

У меня есть небольшой тестовый проект со следующим кодом:

class Program
{
    static void Main(string[] args)
    {
        log4net.GlobalContext.Properties["logFileName"] = "log.txt";
        log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml"));

        log4net.ILog logger = log4net.LogManager.GetLogger("Tests");

        logger.Debug("Test message");
    }
}

Мой файл конфигурации log4net.xml имеет следующее содержимое:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="%property{logFileName}" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="100KB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%utcdate{ISO8601} [%level][%logger] %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="ALL" />
        <appender-ref ref="RollingFileAppender" />
    </root>
</log4net>

Мой вопрос: почему log4net создает файл с именем %property{logFileName} и не заменяет его на log.txt?

Библиотека log4net взята из NuGet (идентификатор: версия log4net:2.0.3).

1 ответ

Решение

Пожалуйста, используйте это в вашей конфигурации XML

<file type="log4net.Util.PatternString" value=".\%property{logFileName}" />
Другие вопросы по тегам