Log4Net(二)之记录日志到文档详解

原创文章,转载必需注明出处:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/log4net-%E4%BA%8C-%E4%B9%8B%E8%AE%B0%E5%BD%95%E6%97%A5%E5%BF%97%E5%88%B0%E6%96%87%E6%A1%A3%E8%AF%A6%E8%A7%A3/



前面一章、我们简单的介绍了log4net的功能,以及一个记录日志到文档的案例。

本节、将带领大家详细了解上节案例中各行代码的意思。

 1 <configuration>
 2   <configSections>
 3     <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
 4   </configSections>
 5   <log4net>
 6     <root>
 7       <level value="ALL"/>
 8       <appender-ref ref="FileAppender"/>
 9     </root>
10 <!--存储到文件的操作-->
11     <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
12       <param name="File" value="Log\log.txt"/>
13       <rollingStyle value="Date"/>
14       <param name="AppendToFile" value="true"/>
15       <!--<param name="DatePattern" value="yyyy-MM-dd".txt""/>-->
16 <param name="DatePattern" value="log.txt"/>
17       <layout type="log4net.Layout.PatternLayout">
18         <param name="ConversionPattern" value="%date%n--- ThreadId=[%t]   Level=%-5p   Message=%m%n"/>
19       </layout>
20     </appender>
21   </log4net>
22 </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()也是如此。

时间: 2024-10-07 22:40:33

Log4Net(二)之记录日志到文档详解的相关文章

redis.conf 配置文档详解

redis 配置文档详解. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411

Nginx配置文档详解

Nginx的配置文档详解,在这儿做个总结,以便以后使用的时间查看. 以下大部分自己整理,部分来自参考 #设置用户 #user  nobody; #启动进程数(一般和服务器的CPU相同) #可以使用 $ cat /proc/cpuinfo 查看内核数 worker_processes  2; #设置错误文件存放的路径 #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log

命令帮助文档详解

一.简介 Linux提供了极为详细的帮助工具及文档,养成查帮助文档的良好习惯,可以大大减少需要记忆的东西并提高效率.man命令是Linux获取帮助文档的重要工具,它是manual的简写.通过man指令可以查看Linux中的指令帮助.配置文件帮助和编程帮助等信息. 二.whatis命令 whatis: 显示命令的简短描述: 查看命令所属章节(man -k COMMAND): 刚安装后不可立即使用: makewhatis(centos6)或mandb(centos7)制作数据库: whatis=ma

产品经理常用的三大文档详解

产品经理常用的三大文档,商业需求文档(Business Requirements Document).市场需求文档(Market Requirements Document).产品需求文档(Product Requirements Document) 商业需求文档(Business Requirements Document),产品介绍即是用一句话清晰定义你的产品:一句话明确表述产品有什么创新,解决了用户什么问题,填补了市场什么空白:一句话描述产品的市场规模和潜在远景:一句话来概括产品的竞争优势

elastic search文档详解

在elastic search中文档(document)类似于关系型数据库里的记录(record),类型(type)类似于表(table),索引(index)类似于库(database). 文档一定有三个元数据 _index 文档在哪存放 _type 文档表示的对象类别 _id 文档唯一标识 _index可以理解为数据库,在elastic search中通常是将格式相同的数据存在同一_index下,_type即将取消,以后不同type建议分为不同_index,_id类似于数据库里的主键,你自己要

前端 HTML文档 详解

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html> 1.声明HTML文档类型 <!DOCTYPE> 告诉浏览器使用什么样的html或者xhtml来解析ht

值得收藏!my.cnf配置文档详解

MySql对于开发人员来说应该都比较熟悉,不管是小白还是老码农应该都能熟练使用.但是要说到的各种参数的配置,我敢说大部分人并不是很熟悉,当我们需要优化mysql,改变某项参数的时候.还是要到处在网上查找,有点不方便.今天就把我所知道的MySql的配置文件my.cnf做一个简单的说明吧,注意,我总结的mysql是Linux环境下的. 其实,如果你要做mysql性能优化,那么熟悉my.cnf 的相关参数是必不可少的.不然,很多时候就会出现:网上查资料说是调下某个参数性能能提升,实际你调完之后却没有任

Hibernate配置文档详解

hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:<properties><property name="hibernate.show_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="create" /></properties> Hibernat

Robot Framework帮助文档详解

pybot是来执行robotframework的案例, pybot提供的参数有很多,详细的可以在控制台中执行pybot --help 这里介绍下常用的参数 -d outputdir     --- 指定robotframework执行后的report目录为outputdir -i tagnames     --- 指定执行哪些tag的案例 --logtitle SmokeTestLog  ---设置Log的title --reporttitle SmokeTestReport   --设置rep