zoukankan      html  css  js  c++  java
  • log4net的由浅到更浅

    前言:log4net是个比较简单实用的日志记录工具,引用Dll,设置好配置文件,实例化对象,了解一下其中的组件和原理,就可以上手了。

    学习原因:像我这种独行的散修不同于你们世家的弟子,有那么多的资源和导师。刚开始的时候我并不在呼和了解日志这个东西,自己的程序也都是直接F11一步步调试。但是当程序发布到服务器的时候的我就发现了,由于程序运行的环境变了,在本地好好的,在服务器就不行了。咱总不能在服务器装个VS 然后一步步调试去啊。

    探索历程:

    1.在Global中的Application_Error()方法中向一个文本写入日志(问题:并发上锁其他人要等待)。

    2.错误存入集合,Application_Error()方法中读取集合,然后存入文本。(问题:不够装逼)

    3.错误存入队列,开启一个线程,负责从队列中取出,然后存入文本。(后面博客中有讲解)

    4.log4net(简单容易上手,信息可以输出到控制台,文本中)

    5.使用Redis与Log4Net完成分布式日志记录(后面博客中有讲解)

     简单介绍

    Log4net(Log For Net,也有Log For Java)是Apache开源的应用于.Net框架的日志记录工具,其精髓在于蓄千刃之势,动指之间

     Logger:日志记录对象

    Appender:日志记录目标

    Repository :库

    Layout:布局

    声明一个配置文件对log4net进行配置(可以在web.confg中配置,但是会显得繁琐)

    <log4net>   

        <root>

          <level value=" DEBUG" />

          <appender-ref ref="LogFileAppender" />

          <appender-ref ref="ConsoleAppender" />

        </root>

        <logger name="testApp.Logging">

          <level value="DEBUG"/>

        </logger>

        <appender name="LogFileAppender"  type="log4net.Appender.FileAppender" >

          <param name="File" value="c://log-file.txt" />

          <param name="AppendToFile" value="true" />

          <layout type="log4net.Layout.PatternLayout">

            <param name="Header" value="[Header]/r/n"/>

            <param name="Footer" value="[Footer]/r/n"/>

            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n"     />

          </layout>

          <filter type="log4net.Filter.LevelRangeFilter">

            <param name="LevelMin" value="DEBUG" />

            <param name="LevelMax" value="WARN" />

          </filter>

        </appender>

        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >

          <layout type="log4net.Layout.PatternLayout">

            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />

          </layout>

        </appender>

      </log4net>

     在Properties.cs中指向这个配置文件[assembly:log4net.Config.DOMConfigurator(ConfigFile="config/log4net.config",Watch=true)]

    配置中的appender就是指定了这个日志的输出方式,c://log.txt运行后C盘也会多一个文件log.txt 文件夹

     使用的时候:: private static ILog log = LogManager.GetLogger(typeof(当前类名));

    log.Debug(string.Formt("异常:{0}","我主动抛出异常")) 

        我们会以类(class)的类型(type)为参数来调用GetLogger(),

               传递的类(class)的类型(type)可以用typeof(Classname)方法来获得

        上面的typeof用于获取类型的 System.Type 对象.获取指定类的类对象。。这样就可以通过类对象获取其他信息。如类是不是抽象类,位于哪个程序集等等

               当然,还有很多用法和配置请参考教程视频::

          百度网盘:链接: http://pan.baidu.com/s/1c1EyiL6 密码: bjug

    参考文档:

    http://www.cnblogs.com/Raymond201508/p/4934322.html

    http://blog.csdn.net/daichenghua/article/details/4806688

    感谢以上的作者。

  • 相关阅读:
    VMware VSAN 设计规则
    通过命令行给 XenServer 打补丁
    XenServer 根分区空间满的解决办法
    sftp命令不被识别
    windows cmd窗口提示“telnet”命令不能内部或外部命令,也不是可运行的程序
    Eclipse安装ModelGoon控件(ModelGoon控件反向生成UML)
    WINDOWS8.1安装ORACLE客户端及配置
    CentOs下安装maven
    centos下安装java8
    mono支持gb2312
  • 原文地址:https://www.cnblogs.com/liuwenxu/p/6296352.html
Copyright © 2011-2022 走看看