ASP.NET MVC使用log4net

本文介绍如何在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&quot;.log&quot;" />
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 配置结束-->

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文件

 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&quot;.log&quot;" />
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&quot;.log&quot;" />
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

原文地址:https://www.cnblogs.com/Jason-blogs/p/8393754.html

时间: 2024-11-09 15:09:26

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

ASP.NET MVC 使用 Log4net 记录日志

Log4net 介绍 Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版.我们可以控制日志信息的输出目的地.Log4net中定义了多种日志信息输出模式.它可以根据需要将日志输出到控制台,文本文件,windows 日志事件查看器中,包括数据库,邮件等等位置,以便我们快速跟踪程序bug. Log4net 提供 7个日志等级,从高到底分别为:OFF > FATAL > ERROR > WARN > INFO > DEBUG  > ALL Lo

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

第一.在管理NuGet程序包 =>下载 Log4Net 第二.在web.config配置Log4Net 1:在<configuration>节点下 <configSections>节点中 配置log4Net节点引用. <!--log4net日志记录--> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net

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

1.log4net官网配置相关,创建数据库 http://logging.apache.org/log4net/release/config-examples.html CREATE TABLE [dbo].[tbl_LogInfo]( [ID] [int] IDENTITY(1,1) NOT NULL, [LogTime] [datetime] NOT NULL, [Thread] [nvarchar](max) NOT NULL, [LogLevel] [nvarchar](max) NUL

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

log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下 第一.引用log4net.dll 第二.在站点根目录下增加log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="

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

1. 去官网下载log4net.dll,增加引用到站点下(你也可以通过nuget 安装) http://logging.apache.org/log4net/download_log4net.cgi 2. 在Web.config中增加配置(这里按日志文件输出) <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, lo

如何提高码农产量,基于ASP.NET MVC的敏捷开发框架开发随笔一

公司业务量比较大,接了很多项目,为了缩短开发周期老板让我牵头搭建了一个敏捷开发框架. 我们主要的业务是做OA.CRM.ERP一类的管理系统,一个通用的后台搭出来,再配合一些快速开发的组件开发效率能提高很多. 另外老板一再强调要支持APP开发,一次开发能部署到安卓和IOS上. 作为开篇之作,先介绍一下该框架的功能点及技术点,后续的文章再按功能详细讲解. 献上<在线体验Demo地址>希望大家也能从中得到一些启发. 体验地址:http://www.learun.cn:8090 . 用户名:Syste

基于ASP.NET MVC和Bootstrap搭建响应式个人博客站

1.0 为什么要做这个博客站? www.zynblog.com 在工作学习中,经常要搜索查找各种各样的资料,每次找到相关资料后都会顺手添加到浏览器书签中,时间一长,书签也就满了.而且下次再点击这个书签时,可能 就会忘记当时为什么要添加这个书签了,更有可能书签连接已经无效.这样一来,也就不方便自己查阅了.如果转载.收藏到自己的博客园账号中.CSDN账号 中,脚本之家中,知乎中等等,依然是很凌乱,不方便下次查阅. 因此,我下决心开发一个个人技术博客站.主要原因是:可以整合各种宝贵资源,将知识变为宝库

【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo

开篇先给大家讲段历史故事,博主是湖北襄阳人.襄阳物华天宝,人杰地灵,曾用名襄樊.在2800多年的历史文化中出现了一代名相诸葛亮(卧龙),三国名士庞统(凤雏),魏晋隐士司马徽(水镜先生),唐代大诗人孟浩然(孟襄阳),张继.杜审言,文学家皮日休,北宋著名书画家米芾(米襄阳),“允冠百王”的光武帝刘秀,东方圣人释道安等一大批历史文化名人.小说<三国演义>120回故事中有30多回提到襄阳. 相传诸葛亮的老婆黄月英黄头发黑皮肤,但知识广博.诸葛亮发明木牛流马,就是从黄月英的传授的技巧上发展出来.不仅如此

Ninject之旅之十三:Ninject在ASP.NET MVC程序上的应用

摘要: 在Windows客户端程序(WPF和Windows Forms)中使用Ninject和在控制台应用程序中使用Ninject没什么不同.在这些应用程序里我们不需要某些配置用来安装Ninject,因为在Windows客户端应用程序里,开发者可以控制UI组件的实例化(Forms或Windows),可以很容易地委托这种控制到Ninject.然而在Web应用程序里,就不同了,因为框架负责了实例化UI元素.因此,我们需要知道怎样告诉框架委托这种控制责任给Ninject.幸运的是,让ASP.NET M