`
cbuiler
  • 浏览: 2714 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Apache log4net 入门

阅读更多
版本: 2.0.1.2.10

下载: http://archive.apache.org/dist/incubator/log4net/1.2.10/incubating-log4net-1.2.10.zip

测试环境: VS.NET2008 / ASP.NET2.0 / XP(SP3) / IIS6.0

步骤1: 添加 log4net 引用

  创建测试 ASP.NET2.0 项目,在项目中引用 log4net-1.2.10\bin\net\2.0\release\log4net.dll,见下图:



步骤2: 修改 web.config

  在 web.config 文件中添加下面配置:
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

     ...

</configuration>


步骤3: 创建 log4net 配置文件

  创建 log4net.config 文件,如下:
<?xml version="1.0" encoding="utf-8"?>
<log4net>
  <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
  <!-- Set root logger level to ERROR and its appenders -->
  <root>
    <level value="ALL"/>
    <appender-ref ref="SysAppender"/>
  </root>

  <!-- Print only messages of level DEBUG or above in the packages -->
  <logger name="WebLogger">
    <level value="DEBUG"/>
  </logger>

  <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
    <param name="File" value="App_Data/" />
    <param name="AppendToFile" value="true" />
    <param name="RollingStyle" value="Date" />
    <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
    <param name="StaticLogFileName" value="false" />
    <layout type="log4net.Layout.PatternLayout,log4net">
      <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
      <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
    </layout>
  </appender>
  <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
    <layout type="log4net.Layout.PatternLayout,log4net">
      <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    </layout>
  </appender>
</log4net>


  这里注意 log4net.config 文件中根节点名称要与上一步 web.config 配置中的
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  名称保持一致。

步骤4: 在程序集中指定 log4net 配置文件

  打开项目中的 Properties/AssemblyInfo.cs,并添加代码:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// 有关程序集的常规信息通过下列属性集
// 控制。更改这些属性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("TestLog4net1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CHINA")]
[assembly: AssemblyProduct("TestLog4net1")]
[assembly: AssemblyCopyright("Copyright © CHINA 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]

// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]

// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本
//      内部版本号
//      修订号
//
// 可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,
// 方法是按如下所示使用“*”:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

// log4net 日志组件配置
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]



  上面代码最后 2 行是为 log4net 添加的。
  // log4net 日志组件配置
  [assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]


步骤5: 测试代码

  测试单元需要引入 log4net 命名空间:
  using log4net;

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

using log4net;

namespace TestLog4net1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            object o = ConfigurationSettings.GetConfig("log4net");
            log4net.Config.DOMConfigurator.Configure(o as System.Xml.XmlElement);

            log4net.ILog logger = log4net.LogManager.GetLogger("WebLogger");

            //下面按照从上倒下顺序,日志级别由低到高,debug是最低级别,fatal级别最高
            logger.Debug("新加一条调试日志");       
            logger.Info("新加一条普通信息日志");
            logger.Warn("新加一条警告日志");
            logger.Error("新加一条错误日志");
            logger.Fatal("新加一条致命错误日志");
        }
    }
}



  执行结果,在测试程序 App_Data 目录下产生 Logs_20100227.txt 文件,内容如下:

  ----------------------header--------------------------
  2010-02-27 11:15:11,765 [4] DEBUG WebLogger - 新加一条调试日志
  2010-02-27 11:15:11,875 [4] INFO  WebLogger - 新加一条普通信息日志
  2010-02-27 11:15:11,875 [4] WARN  WebLogger - 新加一条警告日志
  2010-02-27 11:15:11,875 [4] ERROR WebLogger - 新加一条错误日志
  2010-02-27 11:15:11,875 [4] FATAL WebLogger - 新加一条致命错误日志

  简单使用 log4net 的示例就完成了。

切割日志文件的 log4net.config 示例:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
  <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
  <!-- Set root logger level to ERROR and its appenders -->
  <root>
    <level value="ALL"/>
    <appender-ref ref="SysAppender"/>
  </root>

  <!-- Print only messages of level DEBUG or above in the packages -->
  <logger name="WebLogger">
    <level value="DEBUG"/>
  </logger>

  <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="App_Data\Logs.txt"/>
    <param name="AppendToFile" value="true"/>
    <param name="MaxSizeRollBackups" value="12"/><!-- 切割最多文件数 -->
    <param name="MaximumFileSize" value="500KB"/><!-- 每个文件的大小 -->
    <param name="RollingStyle" value="Size"/>
    <param name="StaticLogFileName" value="true"/>
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
    </layout>
  </appender>
</log4net>


日志行内容配置:

  %m(message): 输出的日志消息,如ILog.Debug(…)输出的一条消息
  %n(new line): 換行
  %d(datetime): 输出当前语句运行的时刻
  %r(run time): 输出程序从运行到执行到当前语句时消耗的毫秒数
  %t(thread id): 当前语句所在的线程ID
  %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
  %c(class): 当前日志对象的名称
  %L: 输出语句所在的行号
  %F: 输出语句所在的文件名
  %-数字: 表示该项的最小长度,如果不够,则用空格填充

  例如:
  <param name="ConversionPattern" value="%d [%t] %-5p %F(%L) -- %m%n" />

  输出:
  2010-02-27 11:47:50,437 [4] DEBUG E:\Projects\zah\TcmForum\TestCode\TestLog4net1\TestLog4net1\Default.aspx.cs(26) -- 新加一条调试日志


博客原文:http://cbuiler.iteye.com/admin/blogs/604154
内容部分引用:
  1.http://www.xueit.com/asp.net/show-5223-2.aspx  作者:dodo
  • 描述: 添加 Log4net 引用
  • 大小: 233.3 KB
0
0
分享到:
评论

相关推荐

    log4j入门、详解

    本篇文章将深入探讨Log4j的入门知识和核心特性。 ### 1. Log4j简介 Log4j是基于Java的日志框架,最初由Ceki Gülcü设计,旨在提供灵活且高效的日志记录解决方案。Log4j提供了丰富的配置选项,可以控制日志信息的...

    Log4j 入门到详解[推荐].pdf

    ### Log4j从入门到详解知识点汇总 #### 1. Log4j简介 Log4j是Apache的一个开源项目,主要用于实现日志记录功能。通过使用Log4j,开发者可以非常方便地控制日志信息的输出目的地(如控制台、文件等)、每条日志的...

    log4j入门详解

    ### Log4j入门详解 #### 1. Log4j简介 Log4j是Apache软件基金会下的一个开源项目,它提供了一种强大且灵活的方式来管理和控制应用程序的日志记录。相较于简单的打印语句,Log4j提供了更为高级的功能,比如能够根据...

    log4Net测试程序

    log4Net是Apache软件基金会的一个开源项目,提供了一套强大的日志记录工具,适用于各种.NET应用程序。本测试程序旨在帮助初学者理解和运用log4Net进行日志记录。 1. **log4Net介绍** log4Net是一个灵活且可配置的...

    log4j从入门到精通(附jar文件)

    ### Log4j从入门到精通知识点详述 #### 1. Log4j简介 Log4j 是 Apache 软件基金会旗下的一个开源项目,它是一个用于 Java 的日志记录工具。通过使用 Log4j,开发者可以轻松地在 Java 应用程序中实现日志功能,不仅...

    log4j 入门程序

    **Log4j 入门程序详解** Log4j 是 Apache 提供的一款强大的日志记录工具,广泛应用于 Java 开发环境中。它提供了灵活的日志配置,允许开发者根据需求选择不同的输出级别,如DEBUG、INFO、WARN、ERROR 和 FATAL,...

    springboot整合log4j入门程序

    # springboot整合log4j入门... log4j配置文件详细日志配置文件在resources下的log4j-spring.properties: log4j.logger.DEBUG=DEBUGlog4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.DEB

    log4j入门、详解.pdf

    ### Log4j 入门与详解 #### 一、Log4j简介 Log4j是Apache组织提供的一个开源日志框架,它可以帮助开发者轻松地在应用程序中实现日志记录功能。传统的日志记录方式通常是在代码中直接使用`System.out.println()`等...

    Log4Net SDK

    这个SDK包含了详细的文档、入门指南以及开发者工具,旨在帮助程序员更好地理解和使用Log4Net来跟踪应用程序中的事件、错误和调试信息。 1. **介绍**: Log4Net是Apache软件基金会的一个开源项目,基于Java的Log4j...

    log4net控件应用入门实例源码.zip

    `log4net`是Apache组织提供的一款开源的日志记录框架,广泛应用于.NET平台,它为应用程序提供了一种灵活、强大的日志记录方式。这个压缩包中的源码实例是针对初学者设计的,旨在帮助开发者快速理解和掌握如何在自己...

    log4j从入门到详解

    ### log4j从入门到详解 #### 1. Log4j简介 Log4j是一款由Apache组织提供的开源日志组件,被广泛应用于Java应用程序中。它可以帮助开发者在应用程序中记录日志信息,这对于调试程序、追踪错误以及进行系统监控等...

    Log4j入门实例Log4j入门实例

    本文将深入探讨Log4j的基础知识、配置和使用实例,帮助初学者快速入门。 首先,理解Log4j的核心概念至关重要。Log4j主要由三部分组成:Logger(日志器)、Appender(输出端)和Layout(布局)。Logger用于记录日志...

    (zt)Commons-logging + Log4j 入门指南

    《Commons-Logging + Log4j 入门指南》 在Java编程中,日志记录是必不可少的一部分,它有助于调试、性能分析以及故障排查。Apache Commons Logging和Log4j是两个广泛使用的日志框架,本指南将深入讲解如何将它们...

    log4j日志管理安装使用文档

    Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了一种灵活且高效的日志记录解决方案。Log4j 支持多种输出方式,包括控制台、文件、数据库等,并允许自定义日志级别和格式,以满足不同开发需求。 ...

    log4J最简单入门

    ### Log4J 最简入门详解 #### 一、Log4J简介与基本概念 Log4J是一款非常流行的Java日志框架,由Apache软件基金会提供。它可以帮助开发者在应用程序中记录日志信息,这对于调试和维护应用程序来说至关重要。本文将...

    log4j入门介绍和配置方式

    Log4j 入门介绍和配置方式 Log4j 是一个流行的 Java 日志记录工具,能够帮助开发人员调试和分析程序。下面是 Log4j 的基本概念和配置方式。 一、Log4j 概念 Log4j 中有三个主要的组件:Logger、Appender 和 ...

    Log4j入门配置

    **标题:“Log4j入门配置”** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态、定位错误和调试问题。Log4j是Apache组织提供的一款强大的日志框架,广泛应用于各种Java项目。这篇博客将...

    log4j 入门

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` 这配置了一个名为stdout的ConsoleAppender,将日志输出到...

    Log4j入门指南入门教程

    ### Log4j入门指南知识点详解 #### 一、引言 在软件开发过程中,日志(Log)记录是一项不可或缺的功能。良好的日志管理不仅能帮助开发者快速定位问题所在,还能为后期的系统维护提供便利。本篇内容主要围绕Log4j进行...

Global site tag (gtag.js) - Google Analytics