zoukankan      html  css  js  c++  java
  • Log4Net配置

    简介:

      Log4Net是用来记录日志,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题。

      日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。

    演示:

    第一步:官网下载类库

    地址:http://logging.apache.org/log4net/download_log4net.cgi

    也可以到我百度云盘下载:

    链接:https://pan.baidu.com/s/1OOjRwz6K2_ImeTGCz9p-nQ
    提取码:37re

    第二步:程序引入第三方类库

    第三步:配置app.config

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <configuration>
     3   <log4net>
     4     <logger name="logerror">
     5       <level value="ERROR" />
     6       <appender-ref ref="ErrorAppender" />
     7     </logger>
     8     <logger name="loginfo">
     9       <level value="INFO" />
    10       <appender-ref ref="InfoAppender" />
    11     </logger>
    12     <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    13       <param name="File" value="Log\LogError\" />
    14       <param name="AppendToFile" value="true" />
    15       <param name="MaxSizeRollBackups" value="100" />
    16       <param name="MaxFileSize" value="10240" />
    17       <param name="StaticLogFileName" value="false" />
    18       <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
    19       <param name="RollingStyle" value="Date" />
    20       <layout type="log4net.Layout.PatternLayout">
    21         <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
    22       </layout>
    23       <!--&lt; &gt; = <> %n = 回车-->
    24     </appender>
    25     <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
    26       <param name="File" value="Log\LogInfo\" />
    27       <param name="AppendToFile" value="true" />
    28       <param name="MaxFileSize" value="10240" />
    29       <param name="MaxSizeRollBackups" value="100" />
    30       <param name="StaticLogFileName" value="false" />
    31       <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
    32       <param name="RollingStyle" value="Date" />
    33       <layout type="log4net.Layout.PatternLayout">
    34         <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
    35       </layout>
    36     </appender>
    37   </log4net>
    38 </configuration>

    第四步:在AssemblyInfo.cs 注册config

    1 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

    第五步:日志文件帮助类

     1 using System;
     2 using System.Collections.Generic;
     3 using System.IO;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace Log4NetDemo
     9 {
    10     public class LogHelper
    11     {
    12         private LogHelper()
    13         {
    14 
    15         }
    16 
    17         public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
    18 
    19         public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
    20 
    21         public static void SetConfig()
    22         {
    23             log4net.Config.XmlConfigurator.Configure();
    24         }
    25 
    26         public static void SetConfig(FileInfo configFile)
    27         {
    28             log4net.Config.XmlConfigurator.Configure(configFile);
    29         }
    30 
    31         public static void WriteLog(string info)
    32         {
    33             if (loginfo.IsInfoEnabled)
    34             {
    35                 loginfo.Info(info);
    36             }
    37         }
    38 
    39         public static void WriteLog(string info, Exception se)
    40         {
    41             if (logerror.IsErrorEnabled)
    42             {
    43                 logerror.Error(info, se);
    44             }
    45         }
    46     }
    47 }

    第六步:执行

     1 using System;
     2 using System.Windows.Forms;
     3 
     4 namespace Log4NetDemo
     5 {
     6     public partial class Form1 : Form
     7     {
     8         public Form1()
     9         {
    10             InitializeComponent();
    11         }
    12 
    13         private void button1_Click(object sender, EventArgs e)
    14         {
    15             try
    16             {
    17                 LogHelper.WriteLog("正常日志记录!");
    18                 int a = Convert.ToInt32("b");
    19             }
    20             catch (Exception ex)
    21             {
    22                 LogHelper.WriteLog("错误日志记录!", ex);
    23                 MessageBox.Show("ok");
    24             }
    25         }
    26     }
    27 }

     效果

    项目:

    链接:https://pan.baidu.com/s/1WFJbbDudHuXYWYydIjowAA
    提取码:4pzq 

  • 相关阅读:
    使用模拟器混淆前端代码
    中间人攻击 -- Cookie 喷发
    【探索】机器指令翻译成 JavaScript
    复杂的 Hash 函数组合有意义吗?
    【探索】利用 canvas 实现数据压缩
    【趣事】用 JavaScript 对抗 DDOS 攻击 (下)
    【趣事】用 JavaScript 对抗 DDOS 攻击
    【探索】在 JavaScript 中使用 C 程序
    【探索】无形验证码 —— PoW 算力验证
    对抗明文口令泄露 —— Web 前端慢 Hash
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/11386036.html
Copyright © 2011-2022 走看看