用程序诠释生命 发表于 2007-1-11 13:44

Log4net配置(多Appender和Logger)

Log4net配置(多Appender和Logger)
   最近做一个项目,在测试的时候出现异常,总是要测试的人把异常界面发给我,然后我再判断是什么问题,有点烦了. 于是决定使用Log4Net,把异常信息记录下来. 同时我也想把正常的提示信息记录下来. 放在同个文件中,显然导致速个记录文件很乱,于是便想把不同的信息记录在不同的文件中. Google了很久之后,终于让我找到方法了. 方法就是: 增加多个命名Loger和Appender.
   首先解释了一下Appender和Logger是什么.Appender是一种记录方式,可以是命令行,文件,数据库,等等.Log4Net定义了很多种Appender,但以上三种是最常用的. Logger是一个记录器,它调用Appender将信息记录到持久媒体上.
   OK,现在开始.
   在Web.config中添加配置:
由于字数限制,请看一楼
   注意, 根据需要添加不到的Logger,我这里添加了两个Logger,一个叫Info,一个叫Error,分别对应着不同的Appender,这两个Appender都是RollingFileAppender类型的,但是记录的文件名不同. 更值得注意的是, 要让自己定义的Logger生效,必须把root节点去掉(还没有文档或源代码上去确认这一点,但我在使用中是这样的.)
   接下为,就是代码了.首先,你要加载这些配置,把下面这一行放在Global.cs中的Application_Start方法中,
   
log4net.Config.XmlConfigurator.Configure();
      接下来是使用,以下是一个使用的例子.
log4net.ILog errorLogger = log4net.LogManager.Exists( "Error" ); //取得你定义的LoggererrorLogger.Error( "异常信息", ex ); //异常信息
      OK,Log4Net这样就可以为你忠实地工作了.

用程序诠释生命 发表于 2007-1-11 13:45

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

    <log4net debug="true">
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
      <param name="File" value="Application.log.txt" />
      <param name="datePattern" value="MM-dd HH:mm" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >
      <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
      <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="_LogData\Log.txt" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <appender name="ErrorRolling" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="_LogData\ErrorLog.txt" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>

字数限制,看二楼

用程序诠释生命 发表于 2007-1-11 13:46

<!--    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
    -->
    <logger name="Info">
      <level value="ALL"/>
      <appender-ref ref="RollingLogFileAppender" />
    </logger>
    <logger name="Error">
      <level value="ALL"/>
      <appender-ref ref="ErrorRolling" />
    </logger>   
</log4net>

配置终于结束...

MJOfPowerwind 发表于 2007-1-11 13:59

发觉和Log4J基本一样。

hexq 发表于 2007-1-11 16:36

用log4j好久了的路过~~~

wool王 发表于 2007-1-11 21:45

log4×都系一样的。
页: [1]
查看完整版本: Log4net配置(多Appender和Logger)