`

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

分享到:
评论
1 楼 y1210251848 2015-12-17  
你的那个错误应该是项目所使用的目标框架不支持吧

相关推荐

    将Log4net的非独占模式配置

    在很多情况下,为了便于管理和维护日志信息,我们可能会选择将Log4net的配置信息存储在一个单独的配置文件中,而不是直接内嵌在主应用程序的配置文件(如app.config或web.config)中。这样的配置方式被称为非独占...

    log4net应用

    在log4net中,可以通过配置不同的日志级别(如ERROR、FATAL)来捕获和记录错误信息。例如,当出现未捕获的异常时,可以设置为记录FATAL级别的日志: ```xml &lt;appender name="FatalErrorAppender" type="log4...

    日志记录组件log4web.js.zip

    使用者可以通过在console控制台通过log4web.config({tagFilter:"usersmodule"})配置值输出"usersmodule"tag的日志。默认值:"".log4web.config({tagFilter:"usersmodule"});post当发生异常是是否post到服务器。此处...

    将强大的Log4Net日志组件封装成类库支持cs/bs应用。

    1. **添加配置文件**:将包含Log4Net配置信息的XML文件(如log4net.config)复制到你的项目目录下。 2. **引用类库**:在你的项目中引入封装好的Log4Net类库,通常是一个DLL文件。 3. **初始化配置**:在应用程序...

    incubating-log4net-1.2.10ForNet4

    1. 配置文件:`log4net`的配置通常通过`app.config`或`web.config`文件完成。配置项包括日志级别、日志输出的appenders(如ConsoleAppender、FileAppender等)以及layout(日志格式)。 2. 注册日志组件:在应用...

    Maven的ssm项目配置文件

    - 分离配置:根据职责将配置文件划分为多个部分,如将数据库配置单独放在一个文件,便于管理和维护。 - 使用Profile:Maven支持多环境配置,通过Profile可以在开发、测试和生产环境中切换不同的配置。 - 注释和...

    .net4.0_webapi.zip

    对于log4net的配置,通常会在App.config或Web.config中添加相应的节,指定日志的存储位置和格式。然后,通过在代码中注入log4net的日志接口,即可在过滤器或任何其他地方进行日志记录。 总结来说,使用.NET 4.0搭建...

    NodeLog统计方案yog-log.zip

    yog-log 是 Node Log 统计方案,是yog框架的log统计模块,支持中间件或者单独使用等方式,兼容ODP日志格式与配置。关于ODP的日志方案调研可查看此文档. 统计日志类型包括: server日志 access_log: web访问日志,...

    管理Apusic Web服务器

    管理 Apusic Web 服务器的配置文件 apusic.conf 位于安装目录下的 config 目录中,该配置文件包含了 Web 服务器的配置段。通过修改配置段中的可配置属性,可以对 Web 服务器进行管理。 Web 服务器的属性包括: 1. ...

    Solution1.zip

    压缩包内的"Solution1"很可能包含了实现这个整合的全部代码和配置文件,包括项目的.csproj文件、app.config或web.config(用于log4net配置)、SQLite相关的数据库脚本,以及可能的测试代码或示例用例。 综上所述,...

    浅谈python日志的配置文件路径问题

    例如,如果配置文件位于当前脚本的上一级目录中的log_config目录下,可以使用'../log_config/config_file.ini'这样的相对路径。 最后,如果在实际操作中遇到路径问题,Python的日志系统通常会抛出一个异常,提示...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    4个asp.net项目.zip

    9. **调试与日志记录**: 在项目中,开发者可能会使用Visual Studio的调试工具,或者集成如Log4Net、NLog等日志记录库,以便在问题排查时收集信息。 10. **前端技术**: ASP.NET项目往往结合HTML、CSS和JavaScript,...

    thttp使用详解——安装、配置

    - `-nos`:禁用软链接检查,可以节省处理时间,但不建议在生产环境中使用,除非已确保 chroot 操作的安全性。 - `-v` / `-nov`:控制虚拟主机支持。如果 `-v` 在编译时默认开启,可以使用 `-nov` 禁用。 3. **...

    config_files:我的配置文件

    在这个名为"config_files:我的配置文件"的压缩包中,我们推测它包含了用户个人定制的配置文件,特别是与Ruby编程语言相关的设置。Ruby是一种面向对象的脚本语言,广泛用于Web开发、自动化任务以及服务器配置等领域。...

    java 三个框架集成的 文档

    - **资源加载**:在Spring配置文件中使用`classpath*:`前缀可以方便地加载多个配置文件,如`&lt;param-value&gt;classpath*:applicationContext*.xml&lt;/param-value&gt;`。 - **依赖管理**:合理利用Maven或Gradle进行依赖管理...

    L002002014-Windows系统目录安全配置实验.docx

    在Win2000中,用户信息被放在根目录下的Settings文件夹中,每个用户对应单独的目录。 2. Application Data文件夹:存储应用程序的数据,如快捷方式和输入法文件。在Win2000中,每个用户在Documents and Settings...

    课程设计-基于C#的计算机配置信息管理系统(源码+数据库).zip

    数据库连接字符串是一个包含数据库服务器地址、数据库名、用户名和密码等信息的配置项,通常在C#应用程序的配置文件(如app.config或web.config)中找到。正确配置连接字符串后,就可以在C#代码中通过ADO.NET或其他...

    基于ASP.net的多功能论坛系统源码.zip

    6. **Web.config**:这是ASP.NET应用程序的核心配置文件,包含了应用程序的配置信息,如数据库连接字符串、安全性设置等。 7. **其他辅助文件**:如Log日志文件、错误处理页面等,这些都是构建一个完整论坛系统所...

Global site tag (gtag.js) - Google Analytics