log4net生成的文件有一个错误的(null)名称

时间:2015-08-13 14:04:28

标签: log4net log4net-configuration

我使用log4net记录内容。在我的Web应用程序中,Web.config文件包含以下部分:

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value="\\PathWhereThingsAreLogged\%property{HostName}-NameOfTheApplication" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <appendToFile value="true" />
        <maximumFileSize value="10MB"/>
        <maxSizeRollBackups value="5" />
        <rollingStyle value="Size" />
        <rollingMode value="Size" />
        <datePattern value=".yyyy-MM-dd'.log'" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date (%file:%line) %-5level - %message%newline" />
        </layout>
    </appender>

日志出现在文件中,所以很酷,但遗憾的是文件的名称不正确。它的名字是&#34;(null)-NameOfTheApplication&#34;而不是使用文件声明中声明的%property {HostName}。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

实际上,必须事先声明属性!

在Web应用程序中,将它放在Global.asax.cs文件的Application_Start()方法中:

GlobalContext.Properties["HostName"] = Environment.MachineName;

在Windows服务或作业中,将它放在Main(string [] args)方法的Program.cs中。