zoukankan      html  css  js  c++  java
  • 用Log4Net来记录系统的日志信息

        几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。

           经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的 Bug;一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。

         Log4net就是为这样一个目的设计的,用于.NET开发环境的日志记录包。Log4Net是Apache开源的应用于.Net框架的日志记录工具。它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便我们可以从http://logging.apache.org/log4net/download.html上下载最新版本。 然后引用log4net.dll到项目中。

    下面我们一起来看一下,新建一个Web应用程序后,如何运用Log4Net进行日志信息的记录,详细配置如下:

    全局Global 的配置

    View Code
    public class Global : System.Web.HttpApplication
    {
    private static ILog logger = LogManager.GetLogger(typeof(Global)); protected void Application_Start(object sender, EventArgs e)
    {
    log4net.Config.XmlConfigurator.Configure();// 读取配置文件初始化log4Net
    IndexManager.Instance.Start();
    }
    protected void Application_Error(object sender, EventArgs e)
    {
    // 异常对象HttpContext.Current.Error
    logger.Error("程序发生未捕获异常", HttpContext.Current.Error);
    }

    Web.config 的配置:

    View Code
    <?xml version="1.0"?>
    <configuration>
    <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>
    <log4net>
    <!-- Define some output appenders -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log.txt"/> <!—日志名称-->

    <appendToFile value="true"/>
    <maxSizeRollBackups value="10"/><!—日志最大可备份数-->

    <maximumFileSize value="1024KB"/><!—日志文件大小-->

    <rollingStyle value="Size"/>
    <staticLogFileName value="true"/>
    <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    </layout>
    </appender>
    <root>
    <level value="DEBUG"/>
    <appender-ref ref="RollingLogFileAppender"/>
    </root>
    </log4net>

    在项目中页面的运用代码:


    记录的日志信息:

     

    log4Net是一个开源的项目。如果你有更多的需求,可以根据说明文档自己来进行扩展,期待大家,有好的用法。一起发出来,和大家一起交流。

  • 相关阅读:
    C#中的int、long、float、double等类型都占多少个字节的内存
    Bit 存储操作代码碎片
    unity文件写入与读取
    unity调用系统剪切板功能
    LayerMask小结
    NGUI中获取鼠标在控件内部坐标
    【Unity技巧】Unity中的优化技术
    工程源码目录
    Unity3D_NGUI_性能优化实践_CPU卡顿
    Unity3d:UI面板管理整合进ToLua
  • 原文地址:https://www.cnblogs.com/xhwy/p/2263495.html
Copyright © 2011-2022 走看看