zoukankan      html  css  js  c++  java
  • Logging with Log4net (二)

    log4net 是.net 的一款日志记录框架。

    它提供了很多的方法来帮助记录日志:

    clipboard

    使用起来也比较方便:

    选中项目,点击右键,然后选择 Manage NuGet Packages...

    clipboard[1]

    安装log4net package。

    clipboard[2]

    安装好Package 之后,需要用配置文件来配置log4net.

    在项目中添加log4net.config 文件,这个配置文件会将日志以xml 的形式记录到 log.xml 中。

    代码如下:

    <log4net>

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

        <file value="log.xml" />

        <appendToFile value="true" />

        <datePattern value="yyyyMMdd" />

        <rollingStyle value="Date" />

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

          <locationInfo value="true" />

        </layout>

      </appender>

      <root>

        <level value="ALL" />

        <appender-ref ref="RollingFileAppender" />

      </root>

    </log4net>

    这里有一点要注意,就是需要将log4net.config  copy 到bin folder,这样我们的Exe 才能找到这个配置文件。

    clipboard[3]

    在Program 的上面添加代码:

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
    //[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
    namespace Log4net
    {
     class Program
     {
      static void Main(string[] args)
      {
      }
     }
    }
    
    或者是:
    
    namespace Log4net
    {
     class Program
     {
      static void Main(string[] args)
      {
       XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));
      }
     }
    }

    配置好之后,我们就可以记录日志了:

    下面是我记录的一个

    image

    在这里推荐使用EasyLogViewer 来查看日志:

    http://www.codeproject.com/Tips/996927/EasyLogViewer-Yet-another-log-viewer-tool-but-Easi

    image

    当然还可以将日志文件的形式保存,只要我们更改下log4net.config 就可以了:

    <log4net>

      <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

        <!--日志文件名开头-->

        <file value="project.log" />

        <!--是否追加到文件-->

        <appendToFile value="true" />

        <!--混合使用日期和文件大小变换日志文件名-->

        <rollingStyle value="Composite" />

        <!--日期的格式-->

        <datePattern value="&quot;.&quot;yyyyMMdd" />

        <!--最大变换数量-->

        <maxSizeRollBackups value="30" />

        <!--最大文件大小-->

        <maximumFileSize value="50MB" />

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

          <conversionPattern value="%d [%t] %-5p %m - [%F:%L]%n" />

        </layout>

      </appender>

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

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

          <conversionPattern value="%d [%t] %-5p %m%n" />

        </layout>

      </appender>

      <root>

        <level value="ALL"></level>

        <appender-ref ref="RollingLogFileAppender"></appender-ref>

        <appender-ref ref="ConsoleAppender"></appender-ref>

      </root>

    </log4net>

    具体的选项请参考:http://logging.apache.org/log4net/release/config-examples.html

  • 相关阅读:
    再谈TextField
    IOS-TextField知多少
    leftBarButtonItems
    LeftBarButtonItems,定制导航栏返回按钮
    Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法 Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法
    Unrecognized Selector Sent to Instance问题之诱敌深入关门打狗解决办法
    UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
    Present ViewController,模态详解
    UILABEL AUTOLAYOUT自动换行 版本区别
    iOS自动布局解决警告Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0
  • 原文地址:https://www.cnblogs.com/LoveJenny/p/LoggingWithLog4net.html
Copyright © 2011-2022 走看看