本文介绍如何在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
ASP.NET MVC使用log4net
原文地址:https://www.cnblogs.com/Jason-blogs/p/8393754.html