log4net 配置与应用

 

log4net 配置与应用

  log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。具体的使用方法往下看。

        首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。单击这里下载Log4net 。

        使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标,包括控制台,文件,定量大小的文件,远程广播。也就是说我们使用log4net的过程可以是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.美妙的是,这一切工作都可以在Web.config配置文件中完成,所用的代码极少.
其配置如下:

先在web.config中的节点下添加如下配置:

< configSections >
  
< section  name ="log4net"  type ="log4net.Config.Log4NetConfigurationSectionHandler, log4net"   />
configSections >


用过web.config自定义节点的朋友都知道,还应该配置log4net节点,接下来在节点下添加如下log4net节点配置:

 1 < log4net  debug ="false" >
 2      < appender  name ="LogFileAppender"  type ="log4net.Appender.FileAppender"   >
 3          < param  name ="File"  value ="c:/Applog.txt"   />
 4          < param  name ="datePattern"  value ="yyyy-MM-dd HH:mm"   />
 5          < param  name ="AppendToFile"  value ="true"   />
 6          < layout  type ="log4net.Layout.PatternLayout" >
 7              < param  name ="ConversionPattern"  value ="%d [%t] %-5p %c [%x] - %m%n"   />
 8          layout >
 9      appender >
10      < appender  name ="HttpTraceAppender"  type ="log4net.Appender.ASPNetTraceAppender"   >
11          < layout  type ="log4net.Layout.PatternLayout" >
12              < param  name ="ConversionPattern"  value ="%d [%t] %-5p %c [%x] - %m%n"   />
13          layout >
14      appender >
15      < appender  name ="EventLogAppender"  type ="log4net.Appender.EventLogAppender"   >
16          < layout  type ="log4net.Layout.PatternLayout" >
17              < param  name ="ConversionPattern"  value ="%d [%t] %-5p %c [%x] - %m%n"   />
18          layout >
19      appender >
20      < appender  name ="RollingLogFileAppender"  type ="log4net.Appender.RollingFileAppender" >
21          < param  name ="File"  value ="C:/Log.txt"   />
22          < param  name ="AppendToFile"  value ="true"   />
23          < param  name ="MaxSizeRollBackups"  value ="10"   />
24          < param  name ="MaximumFileSize"  value ="5MB"   />
25          < param  name ="RollingStyle"  value ="Size"   />
26          < param  name ="StaticLogFileName"  value ="true"   />
27          < layout  type ="log4net.Layout.PatternLayout" >
28              < param  name ="ConversionPattern"  value ="%d [%t] %-5p %c [%x] - %m%n"   />
29          layout >
30      appender >
31      < root >
32          < level  value ="DEBUG"   />
33          < appender-ref  ref ="LogFileAppender"   />
34      root >
35 log4net >

 


        从上面的配置中可以看到定义了多个appender,每一个appender就是一个日志记录的目标。root节点指定了选用哪一个 appender. 在这里我选用了LogFileAppender。

        到这里配置就基本上完成了,但是怎么使用上面的配置呢?log4net为我们提供了在应用程序启动时加载配置信息的入口,很简单,在Global.asax.cs的Application_Start过程中添加如下代码:
log4net.Config.DOMConfigurator.Configure();
好了,到此为止整个配置过程完成了,下面是怎么调用的问题了。

 

 

using  log4net;

public   partial   class  _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        log4net.ILog logger 
= log4net.LogManager.GetLogger(this.GetType());
        logger.Info(
"程序已经启动");
        logger.Error(
"程序没有错误");
        logger.Debug(
"程序开始调试");

    }

}

在C:/下面会生成一个Applog.txt文本文件,打开看看,里面就有你写入的日志。

log4net.Layout.PatternLayout中的转换模式(ConversionPattern)   如下:

%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息

%n(new line):换行

%d(datetime):输出当前语句运行的时刻

%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数

%t(thread id):当前语句所在的线程ID

%p(priority): 日志的当前优先级别,即DEBUGINFOWARN…

%c(class):当前日志对象的名称,例如:

       模式字符串为:%-10c -%m%n

       代码为:

ILog log=LogManager.GetLogger(“Exam.Log”);

log.Debug(“Hello”);

    则输出为下面的形式:

Exam.Log       - Hello

%L:输出语句所在的行号

%F:输出语句所在的文件名

%-数字:表示该项的最小长度,如果不够,则用空格填充

例如,转换模式为%r [%t]%-5p %c - %m%n PatternLayout 将生成类似于以下内容的输出:

176 [main] INFO org.foo.Bar - Located nearest gas station.

 

posted @ 2007-03-03 22:41 ipusr 阅读(305) | 评论 (4) |  编辑
汇总c#常用函数和方法集

汇总c#常用函数和方法集
3、 变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //生成 1,234,500.00%

5、System.Text.Encoding.Default.GetBytes(变量)
字码转换 转为比特码
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
然后可得到比特长度:
len = bytStr.Length;

7、变量.Substring(参数1,参数2);
截取字串的一部分,参数1为左起始位数,参数2为截取几位。
如:string s1 = str.Substring(0,2);

8、String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
取远程用户IP地址

9、穿过代理服务器取远程用户真实IP地址:
if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}

10、 Session["变量"];
存取Session值;
如,
赋值: Session["username"]="小布什";

取值: Object objName=Session["username"];
String strName=objName.ToString();
清空: Session.RemoveAll();

11、String str=Request.QueryString["变量"];
用超链接传送变量。
如在任一页中建超链接:点击
在Edit.aspx页中取值:String str=Request.QueryString["fdid"];

12、DOC对象.CreateElement("新建节点名");
创建XML文档新节点

13、父节点.AppendChild(子节点);
将新建的子节点加到XML文档父节点下

14、 父节点.RemoveChild(节点);
删除节点

15、Response
Response.Write("字串");
Response.Write(变量);
向页面输出。

Response.Redirect("URL地址");
跳转到URL指定的页面

16、char.IsWhiteSpce(字串变量,位数)——逻辑型
查指定位置是否空字符;
如:
string str="中国 人民";
Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。

17、char.IsPunctuation('字符') --逻辑型
查字符是否是标点符号
如:Response.Write(char.IsPunctuation('A')); //返回:False

18、(int)'字符'
把字符转为数字,查代码点,注意是单引号。
如:
Response.Write((int)'中'); //结果为中字的代码:20013

19、(char)代码
把数字转为字符,查代码代表的字符。
如:
Response.Write((char)22269); //返回“国”字。

20、 Trim()
清除字串前后空格

21 、字串变量.Replace("子字串","替换为")
字串替换
如:
string str="中国";
str=str.Replace("国","央"); //将国字换为央字
Response.Write(str); //输出结果为“中央”

再如:(这个非常实用)

string str="这是

你可能感兴趣的:(其他)