Log4Net使用详解
1.Log4Net环境的搭建与基本配置
[assembly: log4net.Config.XmlConfigurator(Watch = true)]namespace APP02{class Program{static void Main(string[] args){ILog log = log4net.LogManager.GetLogger("Test");log.Error("错误", new Exception("发生了一个异常"));//错误log.Fatal("严重错误", new Exception("发生了一个致命错误"));//严重错误log.Info("信息"); //记录一般信息log.Debug("调试信息");//记录调试信息log.Warn("警告");//记录警告信息Console.WriteLine("日志记录完毕。");Console.Read();}}}
<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="System.Configuration.IgnoreSectionHandler"/></configSections><log4net><appender name="控制台输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /></layout></appender><logger name="Test"><level value="ALL"/><appender-ref ref="控制台输出" /></logger></log4net></configuration>

2.Log4Net结构
3.logger节点配置详解
void
Debug(object message);
Debug(object message, Exception
exception);
bool
IsDebugEnabled { get; }
= LogManager.GetLogger("logger-name")
<log4net><logger additivity="true" name="Test"><level value="ALL"/><appender-ref ref="控制台输出"/><appender-ref ref="文件输出"/></logger><appender name="控制台输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout></appender><appender name="文件输出" type="log4net.Appender.FileAppender"><param name="File" value="F:log-file.txt" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout></appender></log4net>
<log4net xmlns="urn:log4net"><logger xmlns="" name="Base"><appender-ref ref="文件输出"/></logger><logger xmlns="" name="Base.Test"><!-- 继承Base--><level value="ALL"/><appender-ref ref="控制台输出"/></logger><appender xmlns="" name="控制台输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout></appender><appender xmlns="" name="文件输出" type="log4net.Appender.FileAppender"><param name="File" value="F:log-file.txt" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout></appender></log4net>
4.appender节点配置详解
<appender name="文件输出" type="log4net.Appender.RollingFileAppender"><file value="F:\log\Log.txt" /><appendToFile value="true" /><rollingStyle value="Size" /><maxSizeRollBackups value="10" /><maximumFileSize value="5MB" /><staticLogFileName value="true" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout></appender>
<appender name="控制台输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout><filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="FATAL"/></filter><filter type="log4net.Filter.DenyAllFilter" /></appender>
5.filter节点配置详解
<appender xmlns="" name="测试输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout><filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="FATAL"/><!--只记录等级为“FATAL”的日志信息--></filter></appender>

<appender xmlns="" name="测试输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d %-5p %m %exception %n" /></layout><filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="FATAL"/><!--只记录等级为“FATAL”的日志信息--></filter><filter type="log4net.Filter.DenyAllFilter"/><!--在最后增加这个过滤器--></appender>

<filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="FATAL"/></filter><filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="ERROR"/></filter><filter type="log4net.Filter.DenyAllFilter"/>
<filter type="log4net.Filter.LevelRangeFilter"><levelMax value="ERROR"/><levelMin value="INFO"/></filter><filter type="log4net.Filter.DenyAllFilter"/><!--不加这个过滤器也可以-->
6.Layout节点配置详解
<layout type="log4net.Layout.PatternLayout"><conversionPattern value="%d [%t] %-5p %c [%x] - %m%n"/></layout>
7.其它节点的说明与配置
<layout type="log4net.Layout.PatternLayout"><conversionPattern value="%5p %n"/><!--可以使用:<param name="ConversionPattern" value="%5p %n"/>--></layout><filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="FATAL"/><!--可以使用:<param name="LevelToMatch" value="FATAL"/>--></filter><filter type="log4net.Filter.DenyAllFilter" />
<root xmlns=""><level value="WARN" /><appender-ref ref="LogFileAppender" /><appender-ref ref="ConsoleAppender" /></root>
<configSections><section name="log4net" type="System.Configuration.IgnoreSectionHandler"/></configSections>
8.配置文件

<log4net xmlns="urn:log4net"><root xmlns=""><level value="FATAL"/><appender-ref ref="控制台输出"/></root><logger xmlns="" name="Test"><level value="ALL"/><appender-ref ref="控制台输出"/></logger><logger xmlns="" name="Test.lzw" additivity="false"><level value="WARN"/><appender-ref ref="文件输出"/></logger><appender xmlns="" name="控制台输出" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%5p %n"/></layout><filter type="log4net.Filter.LevelMatchFilter"><levelToMatch value="FATAL"/></filter><filter type="log4net.Filter.DenyAllFilter" /></appender><appender xmlns="" name="文件输出" type="log4net.Appender.FileAppender"><file value="F:\ServerLog.txt" /><appendToFile value="false"/><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%property %n" /></layout></appender></log4net>
log4net.Config.XmlConfigurator(Watch = true)]
//配置文件:App.exe.log4net
log4net.Config.XmlConfigurator(ConfigFileExtension
= "log4net")]
//配置文件:log4net.config
log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]
log4net.Config.XmlConfigurator.Configure(new
FileInfo(@"F:/log4net.config"));
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><!--根节点的配置顺序:rendererappenderpluginloggercategoryrootloggerfactorycategoryfactory--><!-- ========================================================================================= --><!--org.apache.log4j.ConsoleAppender 控制台输出org.apache.log4j.FileAppender 文件日志输出org.apache.log4j.DailyRollingFileAppender 每个时间段产生一个日志文件org.apache.log4j.RollingFileAppender 文件大小到达指定尺寸的时候产生一个新的文件org.apache.log4j.WriterAppender 将日志信息以流格式发送到任意指定的地方org.apache.log4j.net.SMTPAppender 发邮件输出日志org.apache.log4j.net.SocketAppender Socket日志org.apache.log4j.nt.NTEventLogAppender Window NT日志org.apache.log4j.net.SyslogAppenderorg.apache.log4j.net.JMSAppenderorg.apache.log4j.AsyncAppenderorg.apache.log4j.varia.NullAppenderorg.apache.log4j.jdbc.JDBCAppender--><!-- ========================================================================================= --><!--控制台输出:org.apache.log4j.ConsoleAppenderThreshold=WARN 指定日志消息的输出最低层次。ImmediateFlush=true 默认值是 true,意谓着所有的消息都会被立即输出。Target=System.err 默认情况下是:System.out,指定输出控制台--><appender name="Console" class="org.apache.log4j.ConsoleAppender"><param name="Threshold" value="ALL"></param><param name="ImmediateFlush" value="true"></param><param name="Target" value="System.out"></param><layout class="org.apache.log4j.TTCCLayout" /></appender><!-- ========================================================================================= --><!--文件日志输出:org.apache.log4j.FileAppenderThreshold=WARN 指定日志消息的输出最低层次。ImmediateFlush=true 默认值是 true,意谓着所有的消息都会被立即输出。File=mylog.txt 指定消息输出到 mylog.txt 文件。Append=false 默认值是 true,即将消息增加到指定文件中,false 指将消息覆盖指定的文件内容。--><appender name="File" class="org.apache.log4j.FileAppender"><param name="Threshold" value="ALL"></param><param name="ImmediateFlush" value="true"></param><param name="File" value="F:\\FileAppender.txt"></param><param name="Append" value="false"></param><layout class="org.apache.log4j.TTCCLayout" /></appender><!-- ========================================================================================= --><!--每个时间段产生一个日志文件:org.apache.log4j.DailyRollingFileAppenderThreshold=WARN 指定日志消息的输出最低层次。ImmediateFlush=true 默认值是 true,意谓着所有的消息都会被立即输出。File=mylog.txt 指定消息输出到 mylog.txt 文件。Append=false 默认值是 true,即将消息增加到指定文件中,false 指将消息覆盖指定的文件内容。DatePattern=.yyyy-ww 每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:.yyyy-MM 每月.yyyy-ww 每周.yyyy-MM-dd 每天.yyyy-MM-dd-a 每天两次.yyyy-MM-dd-HH 每小时.yyyy-MM-dd-HH-mm 每分钟--><appender name="DailyRollingFile" class="org.apache.log4j.DailyRollingFileAppender"><param name="Threshold" value="ALL"></param><param name="ImmediateFlush" value="true"></param><param name="File" value="F:\\DailyRollingFileAppender.txt"></param><param name="Append" value="false"></param><param name="DatePattern" value=".yyyy-MM-dd-HH-mm"></param><layout class="org.apache.log4j.TTCCLayout" /></appender><!-- ========================================================================================= --><!--文件大小到达指定尺寸的时候产生一个新的文件:org.apache.log4j.RollingFileAppenderThreshold=WARN 指定日志消息的输出最低层次。ImmediateFlush=true 默认值是 true,意谓着所有的消息都会被立即输出。File=mylog.txt 指定消息输出到 mylog.txt 文件。Append=false 默认值是 true,即将消息增加到指定文件中,false 指将消息覆盖指定的文件内容。MaxFileSize=100KB 后缀可以是 KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到 mylog.log.1 文件。MaxBackupIndex=2 指定可以产生的滚动文件的最大数。--><appender name="RollingFile" class="org.apache.log4j.RollingFileAppender"><param name="Threshold" value="ALL"></param><param name="ImmediateFlush" value="true"></param><param name="File" value="F:\\RollingFileAppender.txt"></param><param name="Append" value="false"></param><param name="MaxFileSize" value="1KB"></param><param name="MaxBackupIndex" value="3"></param><layout class="org.apache.log4j.TTCCLayout" /></appender><!-- ========================================================================================= --><!-- ========================================================================================= --><!--org.apache.log4j.HTMLLayout 以HTML表格形式布局org.apache.log4j.PatternLayout 可以灵活地指定布局模式org.apache.log4j.xml.XMLLayout XML文件布局日志org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息--><!-- ========================================================================================= --><!--以HTML表格形式布局:org.apache.log4j.HTMLLayoutLocationInfo=true 默认值是false,输出java文件名称和行号Title=日志信息 默认值是"Log4J Log Messages"--><appender name="HTML" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.HTMLLayout"><param name="LocationInfo" value="true"></param><param name="Title" value="日志信息"></param></layout></appender><!-- ========================================================================================= --><!--可以灵活地指定布局模式:org.apache.log4j.PatternLayoutConversionPattern=%m%n 指定怎样格式化指定的消息,如:%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n--><appender name="Pattern" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="级别:[%-6p] 时间:[%d{yyy-MMM-dd HH:mm:ss,SSS}] %-50l %m%n"></param></layout></appender><!-- ========================================================================================= --><!--XML文件布局日志:org.apache.log4j.xml.XMLLayoutLocationInfo=true 默认值是 false,输出 java 文件和行号--><appender name="XML" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.xml.XMLLayout"><param name="LocationInfo" value="true"></param></layout></appender><!-- ========================================================================================= --><!-- ========================================================================================= --><logger name="ConsoleLog" additivity="false"><level value="WARN" /><appender-ref ref="Console" /></logger><logger name="FileLog" additivity="false"><level value="WARN" /><appender-ref ref="File" /></logger><logger name="DailyRollingFileLog" additivity="false"><level value="WARN" /><appender-ref ref="DailyRollingFile" /></logger><logger name="RollingFileLog" additivity="false"><level value="WARN" /><appender-ref ref="RollingFile" /></logger><logger name="HTMLLog" additivity="false"><level value="WARN" /><appender-ref ref="HTML" /></logger><logger name="PatternLog" additivity="false"><level value="WARN" /><appender-ref ref="Pattern" /></logger><logger name="XMLLog" additivity="false"><level value="WARN" /><appender-ref ref="XML" /></logger><!-- ========================================================================================= --><!--优先级:ALL < DEBUG < INFO <WARN < ERROR < FATAL < OFF--><root><priority value="ALL" /><appender-ref ref="Console" /></root></log4j:configuration>
Log4Net使用详解的更多相关文章
- (转)log4net使用详解
说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...
- 转:log4net使用详解
说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...
- (转载)log4net 组件详解
1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是介绍如何在Visual S ...
- 第一节:框架前期准备篇之Log4Net日志详解
一. Log4Net简介 Log4net是从Java中的Log4j迁移过来的一个.Net版的开源日志框架,它的功能很强大,可以将日志分为不同的等级,以不同的格式输出到不同的存储介质中,比如:数据库.t ...
- Log4Net使用详解(续)
转:http://blog.csdn.net/zhoufoxcn/article/details/6029021 说明自从上次在2008年在博客上发表过有关log4net的用法介绍文章之后(网址:ht ...
- log4Net配置详解
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...
- Log4net 配置详解
首先需在config文件的<configSections>节点中增加子节点配置. <configSections> <section name="log4net ...
- Log4net 参数详解
<log4net> <!-- 错误日志类--> <logger name="logerror"> <level value="A ...
- Log4Net使用详解1
log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS SQL Server, Access, Oracle ...
随机推荐
- [ubuntu]中文用户目录路径改英文
ubuntu中文版home文件夹里用目录的"桌面"."图片"."视频"虽然对于中文使用者看起来舒适直观,但是对于bash使用来说简直是障碍. ...
- 2014 Super Training #8 G Grouping --Tarjan求强连通分量
原题:ZOJ 3795 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3795 题目大意:给定一个有向图,要求把点分为k个集 ...
- java 16 -3 Vector的特有功能
/* * Vector的特有功能: * 1:添加功能 替代 * public void addElement(Object obj) -- add() * 2:获取功能 * public Object ...
- Android Studio下载与安装
Android Studio下载与安装 1 2 3 4 5 分步阅读 百度经验:jingyan.baidu.com 自从Google宣布Android Studio将取代Eclipse,正式成为官方集 ...
- VS2013无法启动 IIS Express Web解决办法
不要勾选[覆盖应用程序根URL(U)],或让[覆盖应用程序根URL(U)]下面的输入框和上面的输入框的地址一样! 使用VS2013有一段时间了,因前期都是编写C/S程序,没有使用到B/S调试器.前几日 ...
- php安全配置记录
Php环境部署完成后,通常我们会进行一些安全设置.除了熟悉各种PHP漏洞外,还可以通过配置php.ini来加固PHP的运行环境.PHP官方也曾经多次修改php.ini的默认设置. 接下来,推荐php. ...
- scanf和cin的差异
scanf和cin的差异 引例:http://www.cnblogs.com/shenben/p/5516996.html 大家都知道,在C++中有两种输入.输出方式—scanf和cin,但是,它们之 ...
- ztree插件(JQuery Tree)
本次使用的ztree插件,基本上所有的需求都能满足,可谓功能强大. * [http://www.ztree.me/v3/api.php zTree v3.0 API 文档] * [http://www ...
- 解析 HTTP(HttpURLConnection getResponseCode)
HTTP 请求 客户端通过发送 HTTP 请求向服务器请求对资源的访问.HTTP 请求由三部分组成,分别是:请求行.消息报头和请求征文. 3.1.请求行 请求行以一个方法符号开头,后面跟着请求 URI ...
- word 2010自定义快捷键提高工作效率
经常使用word处理文档, 做笔记的时候会把word文档框缩小,以便同时看pdf同时记录笔记,但是缩小的word框不能把所有的菜单项显示出来,我比较常用那个插入边框下面的那个横线来做分割符,但是缩小了 ...