在项目中新建 “log4net.config” 文件
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <File value="Log" /> <!--是否是向文件中追加日志--> <AppendToFile value="true" /> <!--每个文件的大小--> <MaximumFileSize value="1MB"/> <!--log文件数--> <MaxSizeRollBackups value="10" /> <!--日志文件名是否是固定不变的--> <StaticLogFileName value="false" /> <!--日志文件名格式为:yyyy-MM-dd.log--> <DatePattern value="yyyy\MM\dd\yyyy-MM-dd'.log'" /> <!--日志根据日期滚动--> <RollingStyle value="Date" /> <layout type="log4net.Layout.PatternLayout"> <ConversionPattern value="%date %logger [%thread] %level %message%newline" /> </layout> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="all" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
配置好后在程序集 AssemblyInfo.cs 中加入
[assembly: log4net.Config.XmlConfigurator( ConfigFile = "log4net.config", Watch = true )]
或者用代码初始化
private void InitLog4net() { var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); XmlConfigurator.ConfigureAndWatch(logCfg); //修改日志路径 var repository = LogManager.GetRepository(); var appenders = repository.GetAppenders(); var targetApder = appenders.First() as RollingFileAppender; targetApder.File = string.IsNullOrWhiteSpace(Settings.Default.LogPath) ? Path.Combine( Environment.CurrentDirectory,"log.txt") : Settings.Default.LogPath; targetApder.ActivateOptions(); this.log = LogManager.GetLogger("mainlog"); }