我的配置文件是:
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="InfoFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:/" />
<appendToFile value="true" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="100" />
<datePattern value="YYYY-MM-DD'.log'"/>
<maximumFileSize value="1024KB" />
<staticLogFileName value="false" />
<encoding value="utf-8"/>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="ErrorFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:/" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="10240KB" />
<datePattern value="YYYY-MM-DD'.log'"/>
<staticLogFileName value="true" />
<encoding value="utf-8"/>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="InfoFileAppender" />
<appender-ref ref="ErrorFileAppender" />
</root>
</log4net>
在app.config中。
但它在磁盘D中没有日志文件:!!!!
答案 0 :(得分:9)
刚刚验证了您的配置 - 工作正常。您可能没有正确初始化log4net。您应该添加到 AssemblyInfo.cs 文件中:
[assembly: XmlConfigurator(Watch = true)]
或者您可以使用XmlConfigurator.ConfigureAndWatch方法或只是
XmlConfigurator.Configure();
与NLog不同,log4net无法初始化。
注意:您应该将日期模式更改为yyyy-MM-dd'.log'
- 年和日应为小写字母。你也可以用单个appender写几个级别。无需创建两个写入同一文件的appender。
答案 1 :(得分:1)
尝试以下
<file value="D:/ABC.txt" />
的AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "~\\Abc\\xyz\\log4net.config", Watch = true)]