log4Net配置详解

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="CuyahogaSettings" type="Cuyahoga.Core.Util.CuyahogaSectionHandler, Cuyahoga.Core" />
    <section name="UrlMappings" type="Cuyahoga.Web.HttpModules.UrlMappingsSectionHandler, Cuyahoga.Web" />
    <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net debug="false">
   
    <!-- 总:appender,定义输出介质 Appenders may only be defined as child elements of the <log4net> element.
     Each appender must be uniquely named. The implementing type for the appender must be specified.  -->
     <!-- 说明name
     Required attribute. Value must be a string name for this appender. The name must be unique among all the appenders defined in this configuration file.
      This name is used by the <appender-ref> element of a Logger to reference an appender.
       -->
     <!-- 说明type: Required attribute. Value must be the type name for this appender. If the appender is not defined in the log4net assembly this type name must be fully assembly qualified. -->
    <!-- RollingFileAppender: 输出到文件-->
    <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net"><!-- 设置好像有问题,一些设置冲突-->
    <!-- 定义RollingFileAppender的属性 -->
      <param name="File" value="log/log.txt" /><!-- Gets or sets the path to the file that logging will be written to. -->
      <param name="AppendToFile" value="true" /><!--Gets or sets a flag that indicates weather the file should be appended to or overwritten -->
      <param name="StaticLogFileName" value="true" /><!-- true if always should be logged to the same file --><!-- 使的下面三行的设置无效-->
     
      <param name="RollingStyle" value="Date" /><!-- Gets or sets the rolling style ,Date是RollingMode枚举值Roll files based only on the date  -->
      <param name="DatePattern" value="yyyy.MM.dd" /><!-- Gets or sets the datepattern to be used for generating file names when rolling over on date.  -->
     
        <param name="CountDirection" value="1" /><!-- CountDirection > 0  does the opposite ,从1开始增加是无穷的-->    
     
    <!--文件名的格式为 :(or file.log.curSizeRollBackup or even file.log.yyyy-mm-dd.curSizeRollBackup).  -->
      <!--  Layout:输出日志的格式化器
        用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。
        可以是线性的或一个XML文件。Layout组件和一个Appender组件一起工作。API帮助手册中有关于不同Layout组件的列表。
        一个Appender对象,只能对应一个Layout对象。要实现你自己的Layout类,你需要从log4net.Layout.LayoutSkeleton类继承,它实现了ILayout接口。
        Layout elements may only be defined as children of <appender> elements. -->
      <layout type="log4net.Layout.PatternLayout,log4net"> <!-- Defines the layout used by this appender -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
      </layout>
    </appender>
   
    <root>
      <priority value="ERROR" /><!-- 文档上只看到level 元素?-->
      <!--level: Optional element, maximum of one allowed. Defines the logging level for this
            logger. This logger will only accept event that are at this level or above-->
      <appender-ref ref="rollingFile" />
    </root>
   
    <logger name="Cuyahoga.Core.Service.CoreRepository">
      <level value="ERROR" />
    </logger>
   
    <logger name="Cuyahoga.Web.HttpModules.UrlHandlerModule">
      <level value="INFO" />
    </logger>
</log4net>

</configuration>
<!-- root 在框架的体系里,所有的日志对象都是根日志(root logger)的后代。
因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。在<root>标签里,可以定义level级别值和Appender的列表。
如果没有定义LEVEL的值,则缺省为DEBUG。可以通过<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。
而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。这种缺省的行为方式也可以通过显式地设定<logger>;标签的additivity属性为false而改变。-->
<!-- 格式名含义
%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输出产生该日志事件的线程名
 -->   

在web程序中使用,将配置放在web.config,在winform程序中,将配置放在app.config中,并且在assemblyInfo.cs文件中添加[assembly: log4net.Config.DOMConfigurator()],才会在程序运行时加载配置节 ,或者如下在程序中调用
/// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
  try
  {
  DOMConfigurator.Configure(
  new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
  logger.Info("Start application...");
  Console.Writeline(“请按 <enter> 键退出...");
  System.Console.ReadLine();
  }
  catch (Exception e)
  {
  logger.Info (e);
  }
  }
  }

 


转载:http://www.cnblogs.com/Dot-Boy/archive/2008/07/07/1237806.html

 


log4j.properties 使用

log4j.properties 使用
一.参数意义说明
输出级别的种类
ERROR、WARN、INFO、DEBUG
ERROR 为严重错误 主要是程序的错误
WARN 为一般警告,比如session丢失
INFO 为一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息

配置日志信息输出目的地
log4j.appender.appenderName = fully.qualified.name.of.appender.class
1.org.apache.log4j.ConsoleAppender(控制台)
2.org.apache.log4j.FileAppender(文件)
3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)


配置日志信息的格式
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

控制台选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台

FileAppender 选项
Threshold=DEBUF:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。

RollingFileAppender 选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
日志信息格式中几个符号所代表的含义:
-X号: X信息输出时左对齐;
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个"%"字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。

 

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wgf2006/archive/2009/03/18/4001496.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值