zoukankan      html  css  js  c++  java
  • C# Log4Net简单使用方法

    log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

    使用log4net,一个很明显的好处是可以提供多种等级的记录信息,通过配置可以在开发的不同阶段处理不同的记录信息,比.NET自带的Debug/Trace两个级别要丰富的多。

    一.配置文件

      (1)麻烦自行百度log4net的dll文件,然后添加引用。

    如上,第一个就是Log4net。

      (2)在assemblyInfo.cs里添加下面这句:

    [assembly: log4net.Config.DOMConfigurator(Watch = true)]

    在app.config里添加配置信息,如下(注意格式,startup放最后):

    <configuration>
       
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, 
                log4net-net-1.0"/>
      </configSections>
      
      <log4net>
        <logger name="logerror">
          <level value="Error" />
          <appender-ref ref="ErrorAppender" />
        </logger>
        <logger name="loginfo">
          <level value="INFO" />
          <appender-ref ref="InfoAppender" />
        </logger>
        <logger name="logdebug">
          <level value="DEBUG" />
          <appender-ref ref="DebugAppender" />
        </logger>
        <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="Log\LogDebug\" />
          <param name="AppendToFile" value="true" />
          <param name="MaxSizeRollBackups" value="100" />
          <param name="MaxFileSize" value="10240" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="&lt;调试&gt;%m 时间:%d [%t] ;%n"  />
          </layout>
        </appender>
        <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="Log\LogError\" />
          <param name="AppendToFile" value="true" />
          <param name="MaxSizeRollBackups" value="100" />
          <param name="MaxFileSize" value="10240" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="&lt;异常&gt;%m 时间:%d [%t] ;%n"  />
          </layout>
        </appender>
        <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="Log\LogInfo\" />
          <param name="AppendToFile" value="true" />
          <param name="MaxFileSize" value="10240" />
          <param name="MaxSizeRollBackups" value="100" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%n&lt;正常&gt;&lt;时间:&gt;%d %m[%t];%n"  />
          </layout>
        </appender>
      </log4net>
    
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
    
    </configuration>

    configurations写的是log4net版本信息。
    log4net内分别写了Error DeBug Info三个级别的配置信息,log4net内含7个级别的log信息

    (1)OFF  (2)FATAL  (3)ERROR  (4)WARN  (5)INFO  (6)DEBUG  (7)ALL  (级别是从高到低)

    配置信息的解释:

    <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
          //日志的路径
          <param name="File" value="Log\LogDebug\" />
          //是否在文件中追加文件
          <param name="AppendToFile" value="true" />
          //最大变换数量
          <param name="MaxSizeRollBackups" value="100" />
          //文件最大大小
          <param name="MaxFileSize" value="10240" />
          //日志文件名是否为静态
          <param name="StaticLogFileName" value="false" />
          //文件名称命名
          <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
          //按照文件的Data进行变换日志文件
          <param name="RollingStyle" value="Date" />
          //log输入内容(可以根据需求自行设置)
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="&lt;调试&gt;%m 时间:%d [%t] ;%n"  />
          </layout>
        </appender>

    二.实例化log4net类

     public class Log4netManager
        {
            public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
    
            public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
    
            public static readonly log4net.ILog logdebug = log4net.LogManager.GetLogger("logdebug");
    
            /// <summary>
            /// 输出正常运行信息
            /// </summary>
            /// <param name="info"></param>
            public static void WriteInfo(string info)
            {
    
                if (loginfo.IsInfoEnabled)
                {
                    loginfo.Info(info);
                }
            }
    
            /// <summary>
            /// 输出异常运行信息
            /// </summary>
            /// <param name="info"></param>
            public static void WriteError(string info)
            {
                if (logerror.IsErrorEnabled)
                {
                    logerror.Error(info);
                }
            }
    
            /// <summary>
            /// 输出调试信息
            /// </summary>
            /// <param name="info"></param>
            public static void WriteDebug(string info)
            {
                if (logdebug.IsDebugEnabled)
                {
                    logerror.Debug(info);
                }
            }
        }

    三.输出

      public partial class MainWindow : Window
        {
          
            public MainWindow()
            {
                InitializeComponent();
                Log4netManager.WriteError("error");
                Log4netManager.WriteDebug("debug");
                Log4netManager.WriteInfo("info");
               
            }
        }

    四.打开文件所在位置

    即可,见到该输出文件

  • 相关阅读:
    Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
    (转)Awesome GAN for Medical Imaging
    (转)Awesome Object Detection
    (转)Awesome PyTorch List
    深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning)
    深度学习课程笔记(十六)Recursive Neural Network
    (转)Multi-Object-Tracking-Paper-List
    深度学习课程笔记(十五)Recurrent Neural Network
    (转)Awsome Domain-Adaptation
    论文阅读:Learning Visual Question Answering by Bootstrapping Hard Attention
  • 原文地址:https://www.cnblogs.com/Khan-Sadas/p/4961856.html
Copyright © 2011-2022 走看看