• log4net 使用


    记录日志是软件开发一个比较重要的模块,最近学习了lognet 记录项目日志的方法,主要用于txt文档记录。

    1.下载log4net.dll,引用到项目中

    2.新建配置文件log.config

     1 <?xml version="1.0"?>
     2 <configuration>
     3   <configSections>
     4     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"></section>
     5   </configSections>
     6   <log4net>
     7     <!--日志记录目标:定义输出到文件中-->
     8     <!--RollingFileAppender文件大小到达指定尺寸的时候产生一个新的文件-->
     9     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    10       <!--定义文件存放位置-->
    11       <file value="log\" />
    12       <!--当文件存在时,是否在原文件上追加-->
    13       <appendToFile value="true"/>
    14       <!--创建新文件的方式Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite-->
    15       <rollingStyle value="Date"/>
    16       <!--当RollingStyle为Composite或Date,这里设置文件名格式-->
    17       <datePattern value="yyyy\yyyyMMdd.txt"/>
    18       <!--备份日志数目-->
    19       <param name="MaxSizeRollBackups" value="100"/>
    20       <!--为true时,需要在file里指定文件名,所有日志都记录在这个文件里-->
    21       <staticLogFileName value="false"/>
    22       <!--PatternLayout可以灵活地指定布局模式-->
    23       <layout type="log4net.Layout.PatternLayout">
    24         <!--每条日志末尾的文字说明-->
    25         <!--输出格式-->
    26         <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
    27         <conversionPattern value="%newline %n记录时间: %date %n线程ID:[%thread] %n日志级别: %-5level 
    28                            %n出错类:%logger property:[%property{NDC}] - %n错误描述:%message%newline %n"/>
    29       </layout>
    30     </appender>
    31     <!--日志记录对象,指定logger的设置-->
    32     <logger name="mylog">
    33       <!--日志记录器可以有多个,如控制台,文件,数据库-->
    34       <level value="ALL"/>
    35       <!--文件形式记录日志-->
    36       <appender-ref ref="RollingLogFileAppender"/>
    37     </logger>
    38     <!-- 根logger的设置-->
    39     <!--<root>
    40       <priority value ="debug"/>
    41       <appender-ref ref="myConsole"/>
    42       <appender-ref ref="myFile"/>
    43     </root>-->
    44   </log4net>
    45   <system.web>
    46     <compilation debug="true" targetFramework="4.0" />
    47   </system.web>
    48 </configuration>
    log.config

    这是参考了好几篇文章,综合了一下,注释非常详细~~~

    3.编写日志记录的公用方法LogHelper.cs

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 
     6 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log.config", Watch = true)]
     7 namespace test.WEB.Common
     8 {
     9     public class LogHelper
    10     {
    11         /// <summary>
    12         /// 构造器
    13         /// </summary>
    14         static LogHelper()
    15         {
    16             Init();
    17         }
    18         //获取日志记录器
    19         private static readonly log4net.ILog logger = log4net.LogManager.GetLogger("mylog");
    20         
    21         /// <summary>
    22         /// 读取配置文件-初始化日志系统,在系统运行开始初始化   
    23         /// </summary>
    24         private static void Init()
    25         {
    26             log4net.Config.XmlConfigurator.Configure();
    27         }
    28         #region Debug、Info、Error
    29         /// <summary>
    30         /// 输出调试到Log4Net
    31         /// </summary>
    32         /// <param name="t"></param>
    33         /// <param name="msg"></param>
    34         public static void WriteDebug(object msg, Exception ex)
    35         {
    36             if (logger.IsDebugEnabled)
    37                 logger.Debug(msg, ex);
    38         }
    39         /// <summary>
    40         /// 输出信息到Log4Net
    41         /// </summary>
    42         /// <param name="t"></param>
    43         /// <param name="msg"></param>
    44         public static void WriteInfo(object msg)
    45         {
    46             if (logger.IsInfoEnabled)
    47                 logger.Info(msg);
    48         }
    49         /// <summary>
    50         /// 输出错误到Log4Net
    51         /// </summary>
    52         /// <param name="t"></param>
    53         /// <param name="ex"></param>
    54         public static void WriteError(object msg, Exception ex)
    55         {
    56             if (logger.IsErrorEnabled)
    57                 logger.Error(msg, ex);
    58         }
    59         #endregion
    60     }
    61 }
    LogHelper.cs

    日志记录级别主要有6种,我用了基本的三种 Debug、Info、Error,主要用于调试和记录错误bug

    4.实际调用日志记录方法,简单举例如下:

    string input = TextBox1.Text.Trim();
    //字符串转换为int, //null, 格式不正确,溢出时报异常;
    try
    {
    //格式不正确,溢出时报异常;
    Convert.ToInt32(input);
    Common.LogHelper.WriteInfo("输入:" + input);
    }
    catch (Exception ex)
    {

    Common.LogHelper.WriteError("输入:" + input, ex);
    }

  • 相关阅读:
    JSP文件上传下载组件(2)
    JSP文件上传下载组件(1)
    FetchProfile类的作用
    html(二) -- 文本标签和实体字符
    html (一)-- 概述
    单元测试框架--junit
    内省和BeanUtils
    工厂模式
    反射
    观察者设计模式
  • 原文地址:https://www.cnblogs.com/anngeiBKY/p/4710253.html
Copyright © 2020-2023  润新知