Log4Net(二)之记录日志到文档详解
前面一章、我们简单的介绍了log4net的功能,以及一个记录日志到文档的案例。
本节、将带领大家详细了解上节案例中各行代码的意思。
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="FileAppender"/>
</root>
<!--存储到文件的操作-->
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\log.txt"/>
<rollingStyle value="Date"/>
<param name="AppendToFile" value="true"/>
<!--<param name="DatePattern" value="yyyy-MM-dd".txt""/>-->
<param name="DatePattern" value="log.txt"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date%n--- ThreadId=[%t] Level=%-5p Message=%m%n"/>
</layout>
</appender>
</log4net>
</configuration>
首先是配置log4net.config
<Configuration></Configuration>节点。这是config文件必须切只能包含一个的,用来包含所有的配置内容。
<configSections></configSections>节点。这是用来为配置文件添加自定义节点的。它的内容<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>代表着想这个配置文件添加一个用户自定义节点,节点的名称为log4net类型。IgnoreSectionHandler表示创建的节点类型。这个类型的简单介绍为:创建新的配置处理程序并将指定的配置对象添加到节处理程序集合中
<Root></Root>节点。这个节点是根日志节点,其内容为根日志的配置,有level级别值和Appender的列表。所有的子用户节点(<logger>)都是其后代,上节代码中没有使用<logger>节点。它的内容<level value="ALL"/><appender-ref ref="FileAppender"/>代表着根节点日志记录的日志等级是记录所有等级的日志,<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用。
日志的等级分为以下几种:ERROR、WARN、INFO、DEBUG,ALL
ERROR 为严重错误 主要是程序的错误
WARN 为一般警告,比如session丢失
INFO 为一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">则声明了你的log4net日志的保存方法等其他信息。上章的代码中日志的保存方法为“写日志到文件”所有appender的type则是RollingFileAppender。
<Param>则是设置appender的属性,如保存的文件名,记录方式等,
<Layout>输出日志的格式化器,用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示
格式名含义
%c输出日志信息所属的类的全名
%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-ddHH:mm:ss},输出类似:2002-10-18-22:10:28
%f输出日志信息所属的类的类名
%l输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m输出代码中指定的信息,如log(message)中的message
%n输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r输出自应用启动到输出该日志信息所耗费的毫秒数
%t输出产生该日志事件的线程名
其次是引入log4net.config文件到你的项目中去
想将你的项目引入到log4net,你的将你刚刚配置的log4net.config文件引入到你的项目中来:
1、在项目中找到AssemblyInfo.cs文件,向文件的最后一行加入代码:
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]
2、在项目的Application_Start()函数中加入代码
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("log4net.config")));
最后在你的代码中成功使用log4net记录错误日志
完成以上步骤之后,你就可以在你的代码中声明ILog的变量来记录错误了,
ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
log.Error("变量不存在");
记录不同的日志等级可以用不同的函数如:log.Error(“变量不存在”),则会在你的日志文件中生成一个等级为error的错误,同样log.Info()则会生成一个info日志信息log.debug()也是如此。
Log4Net(二)之记录日志到文档详解的更多相关文章
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- 【红外DDE算法】数字细节增强算法的缘由与效果(我对FLIR文档详解)
[红外DDE算法]数字细节增强算法的缘由与效果(我对FLIR文档详解) 1. 为什么红外系统中图像大多是14bit(甚至更高)?一个红外系统的性能经常以其探测的范围来区别,以及其对最小等效温差指标.首 ...
- 【PDF】java使用Itext生成pdf文档--详解
[API接口] 一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...
- ABBYY FineReader 15扫描和保存文档详解
通过使用ABBYY FineReader 15 OCR文字识别软件的扫描和保存文档功能,用户可使用扫描仪或数码照相机获得图像文档,然后再转换为各种数字格式文档. 在"新任务窗口"中 ...
- 【命令】man命令帮助文档详解
前言:Linux命令分为内建命令和外部命令:内建命令是shell本身自带的,外部命令是是一个可执行程序 我们在使用命令帮助的时候需要钱哦区分命令是内建命令还是外部命令 一.查看一个命令是内建命令还是外 ...
- PyTorch 中 torch.matmul() 函数的文档详解
官方文档 torch.matmul() 函数几乎可以用于所有矩阵/向量相乘的情况,其乘法规则视参与乘法的两个张量的维度而定. 关于 PyTorch 中的其他乘法函数可以看这篇博文,有助于下面各种乘法的 ...
- Hibernate配置文档详解
Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...
- elastic search文档详解
在elastic search中文档(document)类似于关系型数据库里的记录(record),类型(type)类似于表(table),索引(index)类似于库(database). 文档一定有 ...
- 前端 HTML文档 详解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- Unity中的单实例
static GUIManager myInstance; public static GUIManager Instance { get { if (myInstance == null) myIn ...
- Tengine – Nginx衍生版
Tengine是淘宝在Nginx基础上开发的一个衍生版.官方的简介说针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验. ...
- NSLog说明
%@ 对象 %d,%i 整型 (%i的老写法) %hd 短整型 %ld , %lld 长整型 %u 无符整型 %f 浮点型和double型 %0.2f 精度浮点数,只保留两位小数 %x,%X 二进制整 ...
- UVALive 7334 Kernel Knights (dfs)
Kernel Knights 题目链接: http://acm.hust.edu.cn/vjudge/contest/127407#problem/K Description Jousting is ...
- CodeForces 489D Unbearable Controversy of Being (搜索)
Unbearable Controversy of Being 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/B Descrip ...
- JSF 2 radio buttons example
In JSF, "h:selectOneRadio" tag is used to render a set of HTML input element of type " ...
- Codeforces 626A Robot Sequence
A. Robot Sequence time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- 对iOS中MVC的理解
总结于斯坦福大学的白头发老头的公开课 模型-控制器-视图(MVC)是一种将应用中给所有类组织起来的策略 模型(Model)实际上考虑的是“什么”的问题,即你的程序是什么? 以纸牌匹配游戏为例子,模型就 ...
- log_bin_trust_function_creators错误解决
log_bin_trust_function_creators错误解决 当有mysql本地或远程建立function或procedure时报上面的错误 经试验是log_bin_trust_fun ...
- 史上最全!信息安全入门指南<转>
以下所列出的链接均为在线文档,有志于信息安全的爱好者可由此作为入门指南. 背景知识 常规知识 Sun认证-Solaris 9&10安全管理员学习指南 PicoCTF资料 应用软件安全 OWAS ...