zoukankan      html  css  js  c++  java
  • log4net使用简介

    当我们开发软件时,一般都会加入运行期的跟踪手段,以方便后续故障分析和Bug调试。.net framework本身提供了一个System.Diagnostics.Trace类来实现流程跟踪功能,但很多时候却不能满足我们的需求,这时往往需要一个更加强大的第三方日志系统。

    前段时间在项目中使用了log4net来记录日志,感觉还不错,这里简单的介绍一下它的用法。使用log4net需要如下几个步骤:

    一、在Nuget中下载log4net

    二、在使用日志的类的名字空间前加上XmlConfiguratorAttribute标记

    不加这个标记的话则log无法生效,如果名字空间较多则比较麻烦,暂时也没有找到可以统一设置的方法。不知道为什么这么设计。

    三、在代码中使用log4net记录日志

    简单的做法就是直接使用内置的Log类:

    static void Main(string[] args)
    {
    ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
    log.Error("error", newException("
    发生了一个异常
    "));
    log.Fatal("fatal", newException("
    发生了一个致命错误"));
    log.Info("info");
    log.Debug("debug");
    log.Warn("warn");
    Console.WriteLine("
    日志记录完毕。");
    }

    四、配置输出方式

    log4net的输出方式是通过配置文件(App.config)来控制的,通过配置文件的好处是非常灵活,可以动态改变配置。一个简单的示例如下:

    <?xmlversion="1.0"encoding="utf-8" ?>
    <configuration>
    <configSections>
    <sectionname="log4net"type="System.Configuration.IgnoreSectionHandler"/>
    </configSections>
    <log4net>
    <root>
    <appender-refref="LogFileAppender" />
    </root>
    <appendername="LogFileAppender"type="log4net.Appender.RollingFileAppender">
    <filevalue="r:/log4netfile.txt" />
    <appendToFilevalue="true" />
    <rollingStylevalue="Date" />
    <LockingModeltype="log4net.Appender.FileAppender+MinimalLock, log4net"/>
    <datePatternvalue="yyyyMMdd-HH:mm:ss" />
    <layouttype="log4net.Layout.PatternLayout">
    <paramname="ConversionPattern"value="%d [%t] %-5p %c [%x] %X{auth} - Line:%L %m%n" />
    </layout>
    </appender>
    </log4net>
    </configuration>

    配置文件的方式初看上去非常复杂,但使用过后就会体会到它的强大之处。上面的配置定义了一个文本文件的方式输出日志,这个也是最常用的一种方式。log4net提供了非常强大的控制策略,例如,可以控制输出日志输出格式、页眉页脚、覆盖策略、安全控制等。具体的说明可以参看下Log4net中的RollingFileAppender解析这篇文章。

    除了以文本方式输出外,还可以使用系统日志、数据库、控制台、邮件等多种方式。并且可以组合使用,这里就不一一介绍了,感兴趣的朋友可以参考下log4net的各种Appender配置示例这篇文章。

    小结

    log4net非常灵活而强大,是一个不可多得的日志系统。本文这里只是介绍了一下log4net的基本用法,方便初次上手的朋友快速入门。如果需要更加深入的了解它,请参考codeproject上的文章log4net Tutorial

    http://www.cnblogs.com/TianFang/archive/2013/03/09/2951819.html

    源代码:https://skydrive.live.com/redir?resid=89F4D7F84CBF85D5!127&authkey=!AL8XSyWY3nDV3rs

  • 相关阅读:
    对称的二叉树
    二叉树的下一个结点
    Go操作Redis实战
    重写Laravel异常处理类
    【论文笔记】Learning to Estimate 3D Human Pose and Shape from a Single Color Image(CVPR 2018)
    ffmpeg第一弹:ffmpeg介绍和开发环境搭建
    程序员你是如何使用镜像中心Harbor的?
    SpringBoot 的 MyBatis 多数据源配置
    Typora+PicGo+Gitee搭建博客写作环境(超详细)
    重学数据结构(八、查找)
  • 原文地址:https://www.cnblogs.com/YEKEYISHUO/p/2966124.html
Copyright © 2011-2022 走看看