log4net记录系统错误日志到文本文件用法详解(最新)
此配置文件可以直接拿来用,配置文件上面有详细用法说明,里面也有详细注释说明。此配置文件涵盖按照日期记录和按照文件大小(建议)的实例。
又包括:按照Fatal、Info、Error、Debug、Warn的所有级别来分别存放不同位置or不同文件的实例。直接上代码更直观,如下:
<?xml version="1.0" encoding="utf-8" ?>
<!--具体用法:、把log4net.config文件放到和Web.config文件同级目录
、在Web.config文件的<appSettings>下 添加:<add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/>
、把log4net.dll放到bin下并引用
、调用类或基类里 添加:public static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
、开始应用:Log.Fatal("Fatal");Log.Info("Info");Log.Error("Error");Log.Debug("Debug");Log.Warn("Warn");
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" />
</configSections>
<log4net>
<root>
<!--定义日志类型-->
<appender-ref ref="RollingFileAppender" /> <!--定义所有类型的日志,所有日志都记录下来-->
<appender-ref ref="FatalRollingFileAppender"/> <!--定义只记录Fatal类型的日志记录-->
<appender-ref ref="ErrorRollingFileAppender" /><!--定义只记录Error类型的日志记录-->
<appender-ref ref="InfoRollingFileAppender" /> <!--定义只记录Info类型的日志记录-->
<appender-ref ref="DebugRollingFileAppender" /><!--定义只记录Debug类型的日志记录-->
<appender-ref ref="WarnRollingFileAppender" /> <!--定义只记录Warn类型的日志记录-->
</root>
<!--所有日志记录到一个文件-->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Log\fulllog.txt" /><!--日志文件存放位置-->
<appendToFile value="true" /> <!--是否追加-->
<rollingStyle value="Size" /> <!--按照文件大小or日期来记录文件-->
<maxSizeRollBackups value="" /><!--备份文件的个数-->
<maximumFileSize value="100KB" /><!--设定单个文件大小,超过大小另新建-->
<staticLogFileName value="true" /><!--是否使用静态文件名-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level [%rms used] - %message%newline" /><!--输出日志每行的头部记录文件-->
</layout>
</appender>
<!--此实例是按照日期记录日志:不建议使用-->
<appender name="FatalRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Fatal">
<file value="Log\Fatal.txt" /><!--日志文件存放位置-->
<appendToFile value="true" /> <!--是否追加-->
<rollingStyle value="Date" /> <!--按照日期来记录日志-->
<datePattern value="yyyyMMdd".log"" /> <!--重命名日志文件的日期后缀规则-->
<staticLogFileName value="true" /><!--是否使用静态文件名-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /><!--输出日志每行的头部记录文件-->
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Fatal" /> <!--这里很关键:此处和上面的LEVEL="Fatal"是对应的,eg:如果是记录Error日志,那么上面和这里三处都是Error-->
<param name="LevelMax" value="Fatal" /> <!--这两行必须一致才行-->
</filter>
</appender>
<!--此实例是按照文件大小记录日志:建议使用-->
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Error">
<file value="Log\Error.txt" /><!--日志文件存放位置-->
<appendToFile value="true" /><!--是否追加-->
<rollingStyle value="Size" /><!--按照文件大小来记录日志:建议用-->
<maxSizeRollBackups value="" /> <!--最多日志文件保留个数,:只保留最新的10个文件-->
<maximumFileSize value="20MB" /> <!--超过指定大小后,另新建文件,20MB:超过20M后新建-->
<staticLogFileName value="true" /><!--是否使用静态文件名-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" /><!--输出日志每行的头部记录文件-->
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Error" /><!--这里很关键:此处和上面的LEVEL="Fatal"是对应的,eg:如果是记录Error日志,那么上面和这里三处都是Error-->
<param name="LevelMax" value="Error" /> <!--这两行、上面 LEVEL="Error" 必须一致才行-->
</filter>
</appender>
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Info">
<file value="Log\Info.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1024KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Info" />
</filter>
</appender>
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Debug">
<file value="Log\Debug.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1024KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Debug" />
<param name="LevelMax" value="Debug" />
</filter>
</appender>
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Warn">
<file value="Log\Warn.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1024KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Warn" />
<param name="LevelMax" value="Warn" />
</filter>
</appender>
</log4net>
</configuration>
后台调用如下:
namespace MvcApplication8.Controllers
{
public class HomeController : Controller
{
public static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public ActionResult Index()
{
Log.Fatal("Fatal");
Log.Info("Info");
Log.Error("Error");
Log.Debug("Debug");
Log.Warn("Warn");
ViewBag.Message = "欢迎使用 ASP.NET MVC!"; return View();
}
}
}
注意:切忌要在你的程序config文件里加上这句话::<appSettings><add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/></appSettings>
<!--具体用法:1、把log4net.config文件放到和Web.config文件同级目录
2、在Web.config文件的<appSettings>下 添加:<add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/>
3、把log4net.dll放到bin下并引用
4、调用类或基类里 添加:public static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
5、开始应用:Log.Fatal("Fatal");Log.Info("Info");Log.Error("Error");Log.Debug("Debug");Log.Warn("Warn");
-->
log4net记录系统错误日志到文本文件用法详解(最新)的更多相关文章
- log4net记录系统错误日志到文本文件用法详解
log4net是一个完全免费开源的插件,可以去官网下载源码. 一般系统操作日志不会用log4net,自己写代码存入数据库更方便合理,但是系统部署后运行在客户环境,难免会发生系统bug.崩溃.断网等无法 ...
- Python中内置的日志模块logging用法详解
logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/P ...
- C# 使用Log4Net记录程序日志
在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可 ...
- C#中四步轻松使用log4net记录本地日志
在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...
- C#中四步轻松使用log4net记录本地日志(WPF有点小区别)
在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...
- ASP.NET MVC中Log4Net记录错误日志的使用
第一.在管理NuGet程序包 =>下载 Log4Net 第二.在web.config配置Log4Net 1:在<configuration>节点下 <configSection ...
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...
- SVN中tag branch trunk用法详解
SVN中tag branch trunk用法详解 2010-05-24 18:32 佚名 字号:T | T 本文向大家简单介绍一下SVN中tag branch trunk用法,SVN中tag bran ...
- [转帖]强大的strace命令用法详解
强大的strace命令用法详解 文章转自: https://www.linuxidc.com/Linux/2018-01/150654.htm strace是什么? 按照strace官网的描述, st ...
随机推荐
- maven执行"mvn clean package" 命令报错
昨天利用mvn打包,执行程序'mvn clean package' 命令,发现打包失败 问题描述 具体看代码 发信tomcat下的log 清除不掉.为什么呢?忽然想起来我的项目服务还起着,于是我把服务 ...
- 基于JVM原理、JMM模型和CPU缓存模型深入理解Java并发编程
许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存.CPU.缓存等予以说明.实际上,在实际的 ...
- linux 关机、重启
一.重启命令:1.reboot2.shutdown -r now 立刻重启(root用户使用)3.shutdown -r 10 过10分钟自动重启(root用户使用) 4.shutdown -r 20 ...
- Python实现奖金计算两种方法的比较
应发奖金计算 简述:企业发放的奖金根据利润提成.利润(profit)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成 ...
- Repeats SPOJ - REPEATS(重复次数最多的连续重复子串)
论文题例8 https://blog.csdn.net/queuelovestack/article/details/53031731这个解释很好 其实,当枚举的重复子串长度为i时,我们在枚举r[i* ...
- Vue 中使用UEditor富文本编辑器-亲测可用-vue-ueditor-wrap
其中UEditor中也存在不少错误,再引用过程中. 但是UEditor相对还是比较好用的一个富文本编辑器. vue-ueditor-wrap说明 Vue + UEditor + v-model 双向绑 ...
- 数据挖掘领域经典分类算法 —— C4.5算法(附python实现代码)
目录 理论介绍 什么是分类 分类的步骤 什么是决策树 决策树归纳 信息增益 相关理论基础 计算公式 ID3 C4.5 python实现 参考资料 理论介绍 什么是分类 分类属于机器学习中监督学习的一种 ...
- java之初学线程
线程 学习线程相关的笔记,前面写过关于很多线程的使用,有兴趣的可以去了解下 线程 概念理解 并发 : 指两个或多个事件在同一个时间段内发生(交替执行). 并行 : 指两个或多个事件在同一时刻发生(同时 ...
- Codeforces Good Bye 2018
咕bye 2018,因为我这场又咕咕咕了 无谓地感慨一句:时间过得真快啊(有毒 A.New Year and the Christmas Ornament 分类讨论后等差数列求和 又在凑字数了 #in ...
- 【arc102E】Stop. Otherwise...
Portal --> arc102E Description 有\(N\)个位置,每个位置可以填一个\(1\sim K\)的数,要求对于每一个\(i\in [2,2K]\),求出任意两个位置的和 ...