Log4net 一些心得和Ibastis.net日志配置

1.log4net使用

  a.现在的版本是1。2。10。。好象停止更新了 下载

  b.引用log4net.dll

  c.添加配置文件

    配置文件的使用注意:

   1。如果程序只是在一个程序域,而且只有一个单一的程序集,那只要在web.config或者app.config。如下:

 

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <root>
      <level value="ALL" />
      <!--<appender-ref ref="LogFileAppender" />-->
    </root>

    <logger name="HR.BusinessComponent" additivity="false">
      <level value="DEBUG" />
    </logger>
    <logger name="HR.DataAccess" additivity="false">
      <appender-ref ref="DaoLogFileAppender" />
      <level value="DEBUG" />
    </logger>
    <logger name="HR.WebApp" additivity="false">
      <level value="DEBUG" />
    </logger>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
      <param name="File" value="log-file.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt;%n -输出消息:--%m%n" />
      </layout>
    </appender>
    <appender name="DaoLogFileAppender" type="log4net.Appender.FileAppender" >
      <param name="File" value="dao_log.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt;%n -输出消息:--%m%n" />
      </layout>
    </appender>
  </log4net>

  一种是:

      在Assembly.cs中添加或者是在当前使用的类上

      [assembly: log4net.Config.XmlConfigurator(Watch = true)]  

  一种是然后在Global.cs中添加

     log4net.config.XmlConfig.ConfigWatch()这个方法

 

   2.但是一般我们都是分层的,而且也希望日志是可以替换的。但是这样会导致log4net只能共用宿主的配置文件比如web.config和app.config

全导致配置文件很复杂。

    我是这样处理的首先为他添加一个叫log4net的单独的配置文件

   和上面基本一对敌。

然后在初始化的时候,是这样

  

            Uri uri = new Uri(Assembly.GetExecutingAssembly().CodeBase);

            string file = Path.Combine(Path.GetDirectoryName(uri.LocalPath), "log4net.config");
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(file));

这样总是可以拿到本程序集下的log4.net文件,,当然你要把log4net.config做为输出文件去

 

posted @ 2010-12-10 10:03 酱板猪 阅读(125) 评论(0) 编辑 收藏