本文介绍如何在ASP.NET MVC中使用log4net来记录日志文件。
参考链接:
https://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC
http://www.cnblogs.com/suntanyong88/p/4571005.html
第一步:
创建项目ASP.NET Web Application MVC
第二步:
Nuget安装log4Net
第三步:
配置我们的应用程序使用log4net框架。找到startup.cs文件,在namespace上添加如下代码:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]
第四步:
在web.config文件中添加log4net配置
1 <!--log4net 配置--> 2 <log4net> 3 <root> 4 <level value="ALL" /> 5 <appender-ref ref="console" /> 6 <appender-ref ref="file" /> 7 </root> 8 <appender name="console" type="log4net.Appender.ConsoleAppender"> 9 <layout type="log4net.Layout.PatternLayout"> 10 <conversionPattern value="%date %level %logger - %message%newline" /> 11 </layout> 12 </appender> 13 <appender name="file" type="log4net.Appender.RollingFileAppender"> 14 <file value="logs\" /> 15 <appendToFile value="true" /> 16 <rollingStyle value="Date" /> 17 <param name="DatePattern" value="yyyy-MM-dd".log"" /> 18 <param name="StaticLogFileName" value="false" /> 19 <layout type="log4net.Layout.PatternLayout"> 20 <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 21 </layout> 22 </appender> 23 </log4net> 24 <!--log4net 配置结束-->
第五步:
找到文件Global.asax,在Application_Start()方法中加入:
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")))
第六步:
开始使用log4net。在需要使用的cotroller或者service中定义log4net:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
需要调用的地方:
log.Error(message);
log.Info(message);
log4net配置文件说明
<file value="" /> 文件存储位置或名称。
如果是固定命名文件则<file value="D:/log/xxx.txt" />
如果是可变命名(以日期命名),此处可以只是一个路径<file value="D:/log/" />
<staticLogFileName value="false" /> 文件命名是否静态。
这个节点很重要,而且容易忽略。如果是以日期这种变化的命名log文件,则value为true,如果像<file value="D:/log/xxx.txt" />这种固定的文件,则value为false。
<rollingStyle value="Size" />文件按照什么方式来生成。
值有Size(大小),Date(日期),Composite(组合)。
<maxSizeRollBackups value="5" />最多可生成文件数
如果超过单个文件大小的最大值,会新生成文件。value中的数值就是最多生成文件的数量。
<maximumFileSize value="10MB" />单个文件大小的最大值。
<param name="DatePattern" value="yyyy-MM-dd".log"" />文件的命名方式
以下是3种配置(Size,Date,Composite)的样例
通过文件大小来生成log文件
1 <log4net> 2 <root> 3 <level value="ALL" /> 4 <appender-ref ref="console" /> 5 <appender-ref ref="file" /> 6 </root> 7 <appender name="console" type="log4net.Appender.ConsoleAppender"> 8 <layout type="log4net.Layout.PatternLayout"> 9 <conversionPattern value="%date %level %logger - %message%newline" /> 10 </layout> 11 </appender> 12 <appender name="file" type="log4net.Appender.RollingFileAppender"> 13 <file value="D:/log/log4netfile.txt" /> 14 <appendToFile value="true" /> 15 <rollingStyle value="Size" /> 16 <maxSizeRollBackups value="5" /> 17 <maximumFileSize value="10MB" /> 18 <staticLogFileName value="true" /> 19 <layout type="log4net.Layout.PatternLayout"> 20 <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 21 </layout> 22 </appender> 23 </log4net>
通过日期来生成log文件,每过一天会新生成文件
1 <log4net> 2 <root> 3 <level value="ALL" /> 4 <appender-ref ref="console" /> 5 <appender-ref ref="file" /> 6 </root> 7 <appender name="console" type="log4net.Appender.ConsoleAppender"> 8 <layout type="log4net.Layout.PatternLayout"> 9 <conversionPattern value="%date %level %logger - %message%newline" /> 10 </layout> 11 </appender> 12 <appender name="file" type="log4net.Appender.RollingFileAppender"> 13 <file value="D:/log/" /> 14 <appendToFile value="true" /> 15 <rollingStyle value="Date" /> 16 <param name="DatePattern" value="yyyy-MM-dd".log"" /> 17 <staticLogFileName value="false" /> 18 <layout type="log4net.Layout.PatternLayout"> 19 <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 20 </layout> 21 </appender> 22 </log4net>
通过日期和大小的组合来生成log文件
1 <log4net> 2 <root> 3 <level value="ALL" /> 4 <appender-ref ref="console" /> 5 <appender-ref ref="file" /> 6 </root> 7 <appender name="console" type="log4net.Appender.ConsoleAppender"> 8 <layout type="log4net.Layout.PatternLayout"> 9 <conversionPattern value="%date %level %logger - %message%newline" /> 10 </layout> 11 </appender> 12 <appender name="file" type="log4net.Appender.RollingFileAppender"> 13 <!--<file value="D:/log4netfile.txt" />--> 14 <file value="D:/log/" /> 15 <appendToFile value="true" /> 16 <rollingStyle value="Composite" /> 17 <param name="DatePattern" value="yyyy-MM-dd".log"" /> 18 <maxSizeRollBackups value="10"/> 19 <maximumFileSize value="5KB"/> 20 <staticLogFileName value="false" /> 21 <layout type="log4net.Layout.PatternLayout"> 22 <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 23 </layout> 24 </appender> 25 </log4net>
官方文档链接如下:
https://logging.apache.org/log4net/index.html