zoukankan      html  css  js  c++  java
  • log4net配置

    log4net配置(web中使用log4net,把web.config放在单独的文件中)  

    以下有几个要注意的地方(这很有可能就是写不出日志的关键所在)

    成功例子一:

    vs2003建立的asp.net项目,log4net文件放在web.config文件中

    1。添加log4net.dll的引用(可以用源码自己生成,无所谓了,下载dll都行)

    2。web.config中添加(注意放对位置,在<configuration> 标签下)

    <configSections>

      <section name="log4net"

       type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"

      />

     </configSections>

     <log4net>

      <root>

       <level value="ALL" />

       <appender-ref ref="LogFileAppender" />

      </root>

      <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>

     </log4net>  

    3。WebForm1.aspx.cs中page_Load中

    log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");

       log.Debug("hello");

    4。在应用程序代码中读取配置(方法有3种,错误的也有一中,注意了)

    正确a:   该web项目中的AssemblyInfo.cs文件中添加(注意放对位置,放在命名空间外)

    [assembly:log4net.Config.DOMConfigurator( ConfigFile="Web.config",Watch=true)]

    正确b:    或则Global.asax.cs中添加(位置也是在命名空间外)

    [assembly:log4net.Config.DOMConfigurator( ConfigFile="Web.config",Watch=true)]

    正确c:   或则直接在要记录日志的页面文件WebForm1.aspx.cs里写

    [assembly:log4net.Config.DOMConfigurator( ConfigFile="Web.config",Watch=true)]

    错误:   注意了:这里,网上很多都说第4步可以在Global.asax中Application_Start里用代码实现,

    错误:***************************

    即:log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("Web.Config"));

    错误:***************************

    但是我试过了,不行,不知道大家行不行,如果可以,麻烦请告诉我,感激不尽

    5。 web项目的WebForm1.aspx.cs Page_Load中

     log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");

                log.Debug("hello");

    成功例子二:

    vs2005建立的asp.net项目,log4net文件放在web.config文件中

    1。同vs2003一样

    2。同vs2003一样

    3。同vs2003一样

    4。在应用程序代码中读取配置(这里vs2005没有AssemblyInfo.cs文件,所以相比vs2003少了一种方法,又Global.asax前台页面和后台页面在同一文件中,如果在Global.asax任何位置设置都出错,[assembly:log4net.Config.DOMConfigurator( ConfigFile="Web.config",Watch=true)] ,就只有1种方法了,正确C )

    5。 web项目的WebForm1.aspx.cs Page_Load中

     log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");

                log.Debug("hello");

    成功例子三:

    vs2005建立的asp.net项目,log4net文件放在单独的配置文件中log4net.config

    1。同上(添加引用)

    2。在web项目的web.config中添加(位置还是在<configuration> 标签下)

      <configSections>

        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"/>

      </configSections>

    3。建立单独的log4net.config配置文件

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration>

      <configSections>

        <section name="log4net"

       type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"

      />

      </configSections>

      <log4net>

        <root>

          <level value="ALL" />

          <appender-ref ref="LogFileAppender" />

        </root>

        <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>

      </log4net>

    </configuration>

    4。在应用程序代码中读取配置(道理同上,只有1种正确方法,但是这里Web.Config改成了log4net.config)

    正确c:   或则直接在要记录日志的页面文件WebForm1.aspx.cs里写

    [assembly:log4net.Config.DOMConfigurator( ConfigFile="log4net.config",Watch=true)]

    这里想一下,一个项目肯定会在很多页面中都要记录日志,所以在每个页面文件里都要写这个及其不方便,也不可能,所以我们改用下一中方案,一般我们的项目也会这么设计

    5。 web项目的WebForm1.aspx.cs Page_Load中

     log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");

                log.Debug("hello");

    成功例子四:

    vs2005建立的asp.net项目,log4net文件放在单独的文件中log4net.config,外加,把日志记录放在单独的一个公共项目中,因为往往项目会设计一个公共层,实现日志记录,缓存管理,加密,安全,等等

    这也避免了,成功例子三的缺点,可以只在一个地方读取配置

    我们这里添加一个公共项目framework项目

    即 [assembly:log4net.Config.DOMConfigurator( ConfigFile="log4net.config",Watch=true)]

    1。同上(添加引用)这时是在framework公共项目里添加就ok了,

    2。在web项目的web.config中添加(位置还是在<configuration> 标签下)

      <configSections>

        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"/>

      </configSections>

    3。建立单独的log4net.config配置文件(最好放在web项目中,方便以后修改)

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration>

      <configSections>

        <section name="log4net"

       type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"

      />

      </configSections>

      <log4net>

        <root>

          <level value="ALL" />

          <appender-ref ref="LogFileAppender" />

        </root>

        <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>

      </log4net>

    </configuration>

    4。在应用程序代码中读取配置

     [assembly:log4net.Config.DOMConfigurator( ConfigFile="log4net.config",Watch=true)]

    方法只有一种,即:

    在公共层的AssemblyInfo.cs里面添加

    [assembly:log4net.Config.DOMConfigurator( ConfigFile="log4net.config",Watch=true)]

    5.在公共层的单独的写日志类中添加

     public static void test()

            {

                log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");

                log.Debug("hello");

            }

     6。在web项目的webFom1.aspx.cs中Page_Load中

    framework.Class1.test();

    ok.搞定

    具体log4net 的设置,我在这里就不用多说了,一为高人在网上翻译的log4net的文章非常详细,

    这里可以看到

    http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html

  • 相关阅读:
    [Vue音乐项目] 第六节 歌单列表
    [Vue音乐项目] 第五节 服务器代理跨域
    [Vue音乐项目] 第四节 轮播图
    [Vue音乐项目] 第三节 JSONP跨越
    [Vue音乐项目] 第二节 前提工作
    [Vue音乐项目] 第一节 环境搭建
    HTML网页页脚版权标志
    移动端页面隐藏滚动条
    FDD项目中的总结
    bootstrap模态窗字体模糊
  • 原文地址:https://www.cnblogs.com/lihongchen/p/3615384.html
Copyright © 2011-2022 走看看