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

2024-04-17 00:38

本文主要是介绍log4net配置(web中使用log4net,把web.config放在单独的文件中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:http://hi.baidu.com/cyap/blog/item/814ea2010993fc0a7aec2c3c.html

 

看了网上很多例子,还是不行,花了一个下午的时间,终于成功了,看来自己解决,理解才是最深的,得到帮助的朋友鼓励一下啊,谢谢

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

成功例子一:

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://blog.csdn.net/xssh913913/archive/2007/09/04/1772207.aspx

http://blog.csdn.net/nlxd3/relatedarticles/2044512.aspx

这篇关于log4net配置(web中使用log4net,把web.config放在单独的文件中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910352

相关文章

Java中的getBytes()方法使用详解

《Java中的getBytes()方法使用详解》:本文主要介绍Java中getBytes()方法使用的相关资料,getBytes()方法有多个重载形式,可以根据需要指定字符集来进行转换,文中通过代... 目录前言一、常见重载形式二、示例代码三、getBytes(Charset charset)和getByt

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j

pandas DataFrame keys的使用小结

《pandasDataFramekeys的使用小结》pandas.DataFrame.keys()方法返回DataFrame的列名,类似于字典的键,本文主要介绍了pandasDataFrameke... 目录Pandas2.2 DataFrameIndexing, iterationpandas.DataF

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

nginx负载均衡及详细配置方法

《nginx负载均衡及详细配置方法》Nginx作为一种高效的Web服务器和反向代理服务器,广泛应用于网站的负载均衡中,:本文主要介绍nginx负载均衡及详细配置,需要的朋友可以参考下... 目录一、 nginx负载均衡策略1.1 基本负载均衡策略1.2 第三方策略1.3 策略对比二、 nginx配置2.1