本文介绍如何在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配置

 <!--log4net 配置-->
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="logs\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>
<!--log4net 配置结束-->

web.config

第五步:

找到文件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&quot;.log&quot;" />文件的命名方式


以下是3种配置(Size,Date,Composite)的样例

通过文件大小来生成log文件

 <log4net>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="D:/log/log4netfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>

固定名称,文件大小有限制

通过日期来生成log文件,每过一天会新生成文件

 <log4net>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="D:/log/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>

按日期生成

通过日期和大小的组合来生成log文件

 <log4net>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<!--<file value="D:/log4netfile.txt" />-->
<file value="D:/log/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;" />
<maxSizeRollBackups value="10"/>
<maximumFileSize value="5KB"/>
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>

日期和文件大小组合

官方文档链接如下:
https://logging.apache.org/log4net/index.html

ASP.NET MVC使用log4net的更多相关文章

  1. ASP.NET MVC 使用 Log4net 记录日志

    Log4net 介绍 Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版.我们可以控制日志信息的输出目的地.Log4net中定义了多种日志信息输出模式.它可以根据需要 ...

  2. ASP.NET MVC中Log4Net记录错误日志的使用

    第一.在管理NuGet程序包 =>下载 Log4Net 第二.在web.config配置Log4Net 1:在<configuration>节点下 <configSection ...

  3. ASP.NET/MVC 配置log4net启用写错误日志功能

    <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访 ...

  4. asp.net mvc集成log4net

    第一步:在web项目的引用中添加log4net.dll,可以通过Nuget直接下载并安装: 第二步:在web项目的web.config配置文件的configuration节点内添加log4net节点, ...

  5. asp.net mvc中用 log4net记录日志到数据库中

    1.log4net官网配置相关,创建数据库 http://logging.apache.org/log4net/release/config-examples.html CREATE TABLE [d ...

  6. Log4net入门(ASP.NET MVC 5篇)

    在前4篇Log4net入门文章中,我们讲述了log4net的一些简单用法,在这一篇中我们主要讲述如何在ASP.NET MVC 5项目中将日志信息写入SQL Server数据库中. 一.创建最简单的AS ...

  7. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  8. log4net 使用总结- (2)在ASP.NET MVC 中使用

    log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下   第一.引用log4net.dll   第二 ...

  9. log4net 使用总结- (1)在ASP.NET MVC 中使用

    1. 去官网下载log4net.dll,增加引用到站点下(你也可以通过nuget 安装) http://logging.apache.org/log4net/download_log4net.cgi ...

随机推荐

  1. python图片拼接

    python图片拼接 这两天看到一张图片,想用python来实现类似的图片拼接  先分析图片: 很明显,这张图片是由多张图片叠加拼接而成 从最后一张开始开始叠加,之后的每张图片都往上平移了一个固定的距 ...

  2. hicharts中treemap添加超链接

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. linux美化网址

    参考博文地址 https://blog.csdn.net/qq_42527676/article/details/91356154 https://www.opendesktop.org/ Dash ...

  4. 10.6 IoStudentManager

    package day11_io_student.student_demo; public class Student { private String id; private String name ...

  5. Python中list(列表)、dict(字典)、tuple(元组)、set(集合)详细介绍

    更新时间:2019.08.10 更新内容: "2.14加入sorted()函数" "2.3"加入一种删除元素的方法 "二.字典"新增1.5, ...

  6. 通过Java HTTP连接将网络图片下载到本地

    通过Java HTTP连接将网络图片下载到本地   只知道浏览器使用的是HTTP协议,那么如何将网络资源使用JavaHTTP下载下来呢! 这只是一个非常简单的小示例,只是不想每次碰到关于此方面的内容忘 ...

  7. 模仿NetFlix首页效果

    之前写过UWP 带左右滚动按钮的横向ListView———仿NetFlix首页河的设计,讲述了如何设计一个带有左右滚动按钮横向的ListView. 不过我在半年之前挖了一个坑,由于工作关系,没时间来填 ...

  8. 记一个openwrt reboot异步信号处理死锁问题

    写在前面 觉得本页面排版单调的话,可以尝试到这里看. 问题背景 在 openwrt 上碰到了一个偶现的 reboot 失效问题.执行 reboot 之后系统并没有重启,此时控制台还能工作. 初步排查 ...

  9. Stream—一个早产的婴儿

    当你会关注这篇文章时,那么意味着你对Stream或多或少有些了解,甚至你在许多业务中有所应用.正如你所知,业界对Stream.lambda褒贬不一,有人认为它是银弹,也有人认为其降低了代码的可读性.事 ...

  10. 0day学习笔记(3)--修改函数返回地址

    环境: devc++(编译改为32位),windows10 源码(来自书中) #include <stdio.h> #define PASSWORD "1234567" ...