`
kakalot
  • 浏览: 7527 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

使用log4net

阅读更多
使用log4net

做了7年的java,初次接触.net,发现asp.net的自己的trace用起来不爽。
System.Diagnostics.Debug.WriteLine(  ); 也只能在debug的时候用,程序部署的iis上后就没用了。
习惯了在java程序里使用log4j和common-logging,所以自然而然的想到了log4net。

0 本文的目的是介绍HOW,不是介绍WHY
因为本人是java程序员,对于开源的工具有偏好,如果你是微软铁杆粉丝,需要官方提供的log方案,推荐您使用enterprise library.

另,本文描述的步骤是经过本人验证可行的,参考了许多中英文资料,但是负责任的说:本文是原创,不是ctrl-c ctrl-v的结果。

1 下载 log4net 包
http://logging.apache.org/log4net/index.html

2 配置
2.1 用Visual Studio创建一个 asp.net appliction
2.2 向项目添加 referencs
  log4net提供了很多版本的dll, 选择bin/net/2.0目录下的,显然log4net很久没有更新了,没有.net 3.5版本,不过没关系,一样用

2.3 修改AssemblyInfo.cs
添加
[assembly:log4net.Config.XmlConfigurator(ConfigFile="Web.config", Watch=true)]

2.4 配置web.config
在 configuration/configSections 元素下面添加
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

然后在添加 configuration 元素下面添加
<!--log4net begin-->
<log4net debug="true">
   <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
     <file value="D:\log\4.log" />
     <appendToFile value="true" />
     <rollingStyle value="Size" />
     <maxSizeRollBackups value="2" />
     <maximumFileSize value="1MB" />
     <staticLogFileName value="true" />
     <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
     </layout>
   </appender>

   <root>
     <level value="ALL" />
     <appender-ref ref="RollingLogFileAppender" />
   </root>
</log4net>

这段配置和log4j的配置一样,关于log格式定义 conversionPattern 如何编写,请参考 附录


3 代码
3.1 创建 log 对象
private static readonly ILog log = LogManager.GetLogger(typeof(_Default));

3.2 记录log
log.Debug("something");


4 IIS 环境配置
上述配置完成后,可以直接在vs里进行debug,日志文件可以自动创建,并正确生成。但是程序发布到iis后,发现没有日志文件
折腾了很久才找到原因是程序运行在iis上没有写 d:\log\目录的权限。
具体配置如下:(windows2003 环境)
4.1 在iis 打开 已经部署的程序的属性
查看程序使用的application pool




4.2 查看application pool使用的windows 账户或者组




4.3 给log输出的目录配置权限
上两步可以了解到程序在iis里运行时候使用的group是 NETWORK SERVICE





附录1
!-----------------------------------------------------------------------------
! PATTERN FORMATS GLOSSARY
!-----------------------------------------------------------------------------
! %n - newline
! %m - your log message
! %p - message priority (FATAL, ERROR, WARN, INFO, DEBUG or custom)
! %r - millisecs since program started running
! %% - percent sign in output
!
!-----------------------SOME MORE CLUTTER IN YOUR LOG-------------------------
! %c - name of your category (logger), %c{2} will outputs last two components
! %t - name of current thread
! %x - Nested Diagnostic Context (NDC) (you supply it!)
!
!-------------------------SLOW PERFORMANCE FORMATS----------------------------
! %d - date and time, also %d{ISO8601}, %d{DATE}, %d{ABSOLUTE},
! %d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS} and so on
! %l - Shortcut for %F%L%C%M
! %F - Java source file name
! %L - Java source line number
! %C - Java class name, %C{1} will output the last one component
! %M - Java method name
!
!------------------------------FORMAT MODIFIERS-------------------------------
! %-any_letter_above - Left-justify in min. width (default is right-justify)
! %20any_letter_above - 20 char. min. width (pad with spaces if reqd.)
! %.30any_letter_above - 30 char. max. width (truncate beginning if reqd.)
! %-10.10r - Example. Left-justify time elapsed within 10-wide field.
! Truncate from beginning if wider than 10 characters.
!-----------------------------------------------------------------------------
  • 大小: 82.7 KB
  • 大小: 65.5 KB
  • 大小: 78.3 KB
分享到:
评论

相关推荐

    C#Winform 下使用log4net成功的例子

    log4net是一款广泛使用的日志框架,它提供了灵活的日志记录配置和多种输出方式。下面我们将详细探讨如何在C# Winform环境下成功集成并使用log4net。 首先,`App.config`文件是.NET应用程序的配置文件,用于存放log4...

    vs2010 使用 log4net

    在“vs2010 使用 log4net”的描述中,我们看到两个主要部分:log4net的源代码和一个用VS2010编写的测试程序,这将帮助开发者理解和实践如何集成并利用log4net进行日志管理。 **log4net介绍** log4net是一个开源的...

    Log4net详细说明使用

    在Visual Studio 2008中使用Log4net,首先要引入log4net.dll的引用。这可以通过在项目中添加外部引用来完成,确保引用的是1.2.10.0或更高版本。为了在程序启动时初始化log4net配置,需要在相应入口点调用`log4...

    C# 使用Log4Net记录日志

    在C#中,Log4Net是一个广泛使用的开源日志记录框架,它提供了强大的日志记录功能,灵活性高,且易于配置。本文将深入探讨如何在C#项目中使用Log4Net来记录日志。 首先,让我们了解Log4Net的基本概念。Log4Net是...

    C#控制台应用使用Log4net日志

    本文将深入探讨如何在C#控制台应用程序中使用Log4net这一流行的日志框架。Log4net是Apache软件基金会的一个项目,它为.NET应用程序提供了强大的日志记录功能,具有灵活的配置和多种输出选项。 首先,我们要理解Log4...

    .Net 使用Log4Net 获取系统日志并写入数据库

    本文将详细介绍如何使用Log4Net来捕获和记录系统的异常信息,并将其存储到Sql Server数据库中。 首先,我们需要在项目中引入Log4Net库。可以通过NuGet包管理器来安装Log4Net,或者手动添加对log4net.dll的引用。...

    使用Log4net发送日志邮件实例

    在"使用Log4net发送日志邮件实例"中,我们将探讨如何利用Log4net的功能,将日志信息通过电子邮件发送,以便于实时监控和快速响应潜在的问题。 首先,你需要在项目中引用Log4net库。这可以通过NuGet包管理器完成,...

    C#使用log4net记录日志

    在C#中,log4net是一个广泛使用的开源日志框架,它提供了一种灵活的方式来记录应用程序的运行日志。本文将详细介绍如何在C#项目中集成并使用log4net进行日志记录。 首先,你需要了解log4net的基本概念。log4net是一...

    net Core 5.0 Log4Net 全局注册

    Log4Net是.NET平台上一个广泛使用的日志框架,它提供了一种灵活的方式来管理和记录应用的日志信息。本文将详细讨论如何在.NET Core 5.0项目中全局注册Log4Net,以便在整个应用中统一使用日志服务。 首先,要使用Log...

    net6 控制台+ log4net+写数据库+自定义字段

    在.NET 6中使用log4net,你需要先在项目中引入log4net库,这可以通过NuGet包管理器完成。 1. **配置log4net**: - 在项目中创建一个`log4net.config`文件,定义日志记录的配置。例如,你可以配置一个...

    WPF调用log4.net示例

    这个示例将详细解释如何在WPF应用中集成并使用log4net进行日志记录。 首先,你需要在WPF项目中添加对log4net库的引用。这通常通过NuGet包管理器完成,搜索并安装"log4net"包。安装完成后,需要在你的应用程序配置...

    C# 利用log4net 把日志写入到数据库

    在C#项目中使用log4net,首先需要通过NuGet包管理器安装log4net库。安装完成后,需要在项目的App.config或Web.config文件中进行配置。配置文件中主要包含两部分:log4net的root logger和appender(输出目标)。 ```...

    C#最简单最完整的webservice实例(能打log,配有log4net)

    2.3 在代码中使用log4net 在AssemblyInfo.cs文件中,添加`using log4net;`和`[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]`,确保在程序启动时自动加载log4net配置。 ...

    Log4net的使用

    **Log4net简介** Log4net是Apache软件基金会的开源项目,它是一个强大的日志记录框架,广泛应用于.NET平台,提供了灵活...在`TestLog4net`项目中,你可以深入学习如何集成和使用log4net来提升你的异常处理和调试能力。

    WinForm Log4Net 配置和使用实例

    4. 使用Log4Net:在需要记录日志的类或方法中,引入`log4net`命名空间,并声明一个静态的`ILog`接口实例: ```csharp using log4net; private static readonly ILog log = LogManager.GetLogger(typeof(MyClass))...

    Wpf log4net 日志

    &lt;section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /&gt; &lt;log4net&gt; &lt;appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"&gt; ...

    在C#项目中使用log4net

    本文将深入探讨log4net的实际使用实例,包括其基本概念、配置、API使用以及如何将其集成到C#项目中。 首先,理解log4net的核心概念。Log4net提供了一个层次化的日志记录模型,包括Logger(日志器)、Appender(输出...

    log4Net.dll+使用详解

    在使用log4net之前,首先需要将其添加到项目中。这可以通过NuGet包管理器完成,搜索"Log4Net"并安装。安装完成后,需要在项目的配置文件(如Web.config或App.config)中引入log4net的配置元素。 **2. 配置log4net**...

    使用log4net记录日志

    使用log4net记录日志,里面很全。web winform 等等都有例子

    Log4Net使用demo Log4Net.dll

    这个"Log4Net使用demo Log4Net.dll"压缩包包含了一个实例化的演示项目,帮助用户了解如何在自己的应用程序中集成和配置Log4Net。 首先,Log4Net的核心理念是层次化的日志记录,它允许你将日志信息分为不同的级别,...

Global site tag (gtag.js) - Google Analytics