C# log4net%属性不工作

C# log4net%属性不工作,c#,.net,logging,log4net,log4net-configuration,C#,.net,Logging,Log4net,Log4net Configuration,我有一个带有以下代码的小测试项目: class Program { static void Main(string[] args) { log4net.GlobalContext.Properties["logFileName"] = "log.txt"; log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml")); 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.xmlconfig文件包含以下内容:

<?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(Id:log4net版本:2.0.3)。

请在xml配置中使用它

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


您的建议解决了问题。非常感谢你!非常感谢。在找到这个之前,我一直处于绝望之中,现在我的配置正在工作。:-)