前段时间看到一个程序引用了log4net.dll 然后添加了一个配制好的log4net.config,最好又在assemblyinfo.cs添加了[assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config",Watch = true)] 。可以正常输出日志。
今天就依葫芦画瓢的添加log4net.dll, log4net.config ,[assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config",Watch = true)],
却无法向文件输出日志。
百度后,还是找不到原因。只能把log4net.config的内容拷到app.config里,最后的文件内容是
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler" />
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd-HH:mm:ss" />
<param name="File" value="log\log_" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="5" />
<!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
<param name="MaximumFileSize" value="5MB" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d %m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
</configuration>
然后在assemblyinfo.cs添加[assembly: log4net.Config.XmlConfigurator()], 日志文件保存在应用程序log目录下。一下是log4net的帮助
http://logging.apache.org/log4net/release/config-examples.html