Apache log4net 配置的部分解释

log4net 其实可以使用 系统自带的 *.config 配置文件 来配置,也可以使用 其他配置文件 来配置。

这两种配置方式决定了 log4net 使用哪些方式来读取配置信息,从而也决定了一些特性。

log4net 用来读取配置文件的方式有两种,一种是 ASP.NET 的 System.Configuration API,另一种是 log4net 的 log4net.Config.XmlConfigurator

那么他们的区别在哪里呢?

System.Configuration API:

1、只能使用系统自带的 *.config 配置文件来配置(WinForm 是 XXX.exe.config,WebForm 是 web.config)。

(「因为 System.Configuration API 不能重新加载配置文件」,此乃英文文档的直译,我估计他的意思是,配置文件只能从系统自带的 *.config 配置文件一次性读取,不能进行二次读取,所以就不能使用其他配置文件来配置了,就算配置了也读取不了。)

2、不能监控配置文件的变动。意思就是,你的程序一旦运行着,你修改配置文件(比如:由写入文本文件改为写入数据库)是没有作用的。

(这点可以从上面一点的解释那里可以知道,因为 System.Configuration API 不能重新加载配置文件。)

3、读取配置权限跟着 ASP.NET 或者 IIS,所以配置应用程序权限的时候,完全不用担心配置文件的权限问题。

log4net.Config.XmlConfigurator:

1、与上面相反,可以使用系统自带的 *.config 配置文件来配置,也可以使用其他配置文件来配置。

2、与上面相反,可以进行监控,有改动立马生效。

3、与上面相反,绝对要搞清楚程序是否有权限读取文件。

那两种方式应该怎么配置呢?

System.Configuration API:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <configuration>
 3     <configSections>
 4         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
 5         <!--这一段很重要,它的意思就是,下面 log4net 这一个 section 使用后面这个程序来处理,这个程序其实就是调用 System.Configuration API,所以声明这一段就是代表使用 System.Configuration API。-->
 6     </configSections>
 7     <log4net>
 8         <!--这里是一些具体配置-->
 9     </log4net>
10 </configuration>

web.config

 1 [XmlConfigurator]
 2 //[XmlConfigurator(ConfigFile = "xxx.config")] //不可用。
 3 //[XmlConfigurator(ConfigFileExtension = "config")] //不可用。
 4 //[XmlConfigurator(Watch = true)] //不可用。
 5 class Program
 6 {
 7     static void Main(string[] args)
 8     {
 9         //下面这两个可用,二选一。
10         XmlConfigurator.Configure();//这一条等同于 [XmlConfigurator]。
11         XmlConfigurator.Configure(log4net.LogManager.GetRepository("DEBUG"));
12
13         //下面这个是不可用的。
14         //XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"~\xxx.config")); //不可用。
15     }
16 }

Log4netDemo.cs

log4net.Config.XmlConfigurator:

1、使用其他配置文件配置。

如果使用其他配置文件来配置的话,那么系统自带的 *.config 配置文件就不用添加任何东西,直接新建一个配置文件(比如:xxx.config),里面只要有 log4net 这个 section 就可以。

1 <?xml version="1.0" encoding="utf-8"?>
2 <log4net>
3     <!--这里是一些具体配置-->
4 </log4net>

xxx.config

2、使用系统自带的 *.config 配置文件配置。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <configuration>
 3     <configSections>
 4         <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
 5         <!--因为这是系统的配置文件,所以里面的每个 section 都要正确,但是下面 log4net 对于系统来说是不正确的,如果不写这一段会报错,这一段的意思是忽略 log4net 这个 section 的意思。-->
 6     </configSections>
 7     <log4net>
 8         <!--这里是一些具体配置-->
 9     </log4net>
10 </configuration>

web.config

 1 //下面的都可用。
 2 [XmlConfigurator]//使用系统自带的 *.config 配置文件。
 3 [XmlConfigurator(ConfigFile = "xxx.config")]//使用其他配置文件配置。
 4 [XmlConfigurator(ConfigFileExtension = "config")]//使用其他配置文件配置。
 5 [XmlConfigurator(Watch = true)]//监控配置文件。
 6 class Program
 7 {
 8     static void Main(string[] args)
 9     {
10         //下面的都可用。
11         XmlConfigurator.Configure();//这一条等同于 [XmlConfigurator] 声明。
12         XmlConfigurator.Configure(log4net.LogManager.GetRepository("DEBUG"));
13
14         XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"~\xxx.config"));//这一条等同于 [XmlConfigurator(ConfigFile = "xxx.config", Watch = true)] 声明。
15     }
16 }

Log4netDemo.cs

上面这些代码只是一种展示,里面的语法是错误的,应该完全理解之后,结合自己的项目进行配搭。

Apache log4net 配置的部分解释

时间: 2024-11-01 12:53:12

Apache log4net 配置的部分解释的相关文章

log4net学习手册四 Apache log4net?配置实例

以下内容是Apache log4net官网技术文档通过google翻译而来 http://logging.apache.org/log4net/release/features.html 概述 本文介绍的示例配置为内置的appender.这些结构的设计与log4net.Config.DOMConfigurator和log4net.Repository.Hierarchy.Hierarchy工作.这些实施例绝不是对追加程序穷举配置.对于可以指定每个附加目的地和更多的细节上每一个选项的参数的完整列表

在C#代码中应用Log4Net(三)Log4Net中配置文件的解释

一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger name="logerror"> <level value="ALL" /> <appender-ref ref="ErrorAppender" /> </logger> <!-- 信息日志类 -->

Apache的配置详解,最好的Apache配置文档

http://blog.csdn.net/apple_llb/article/details/50253889 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 主站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置.其它指定的目录如果没有指定绝对路径,则目录是相对于该目录. PidFile logs/httpd.pid #第一个htt

C# Log4Net配置

Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运行过程的步骤.成功失败记录下来,将关键性的数据记录下来分析系统问题所在.Log4J.对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在. 配置Log4Net环境 (1)新建一个WebApplication (2)添加对log4net.dl

PHP Apache shutdown unexpectedly启动错误解释及解决办法

本文出自:http://blog.csdn.net/svitter 实验环境:Myeclipse10 + tomcat7.0 有时间会写windows和linux下的tomcat配置,现在时间有限,暂且不写了..有些东西也是没有理解透彻. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <%@ page language="java" contentType="

apache中配置php支持模块模式、cgi模式和fastcgi模式

apache中配置php支持模块模式.cgi模式和fastcgi模式 首先安装apache.MySQL和PHP,依次顺序安装. 1.apache.mysql的安装比较简单,略过 2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了. ./configure –prefix=/usr/local/php5 /--with-mysql=/usr/local/mysql /--enable-fpm--with-apxs2=/usr/local/apache/bi

log4net 配置

 log4net主要有Appenders(输出媒介).Filters(过滤器).Layouts(布局).Loggers(日志类别).Object Renders(渲染器)组成. log4net配置示例 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type=&

Log4Net 配置StmpAppender

目录 Log4Net 配置StmpAppender    1 1.前言    1 2.详细配置    1 1.StmpAppender配置    1 2.Root 配置    2 3.更多选项    3 1.前言 问题描述:虽然能够通过文件记录日志,但是不能实时通知信息给维护人员,而Log4Net提供了邮件日志 其益处可以考虑如下情形: 周末,放假,程序出了问题,记录了文件日志,但是不能通知到运维人员,这时,使用邮件日志或者短信日志就能够很好地响应了! 参考文献: http://www.cnbl

apache高性能配置

apache高性能配置 对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问量环境下发挥出更好的性能.以下我们对Apache配置文件httpd.conf中对性能影响较大的参数进行一些说明. (1) Timeout 该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接.该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30. (2)