程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> log4net使用記錄,log4net記錄

log4net使用記錄,log4net記錄

編輯:關於.NET

log4net使用記錄,log4net記錄


1、在程序中引用log4net.dll

2、添加-新建配置文件Log4Net.config,並在文件屬性中“復制到輸出目錄”選中“始終復制”,文件內容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  <!--Log日記配置-->
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  
  <log4net>
    <root></root>
    <!--程序中只實例化一個logger,名字為LogHelper-->
    <logger name ="LogHelper">
      <!--輸出所有信息,這裡只使用了Info和Error-->
      <level value="ALL"/>
      <!--兩個介質名稱,對應錯誤和信息-->
      <appender-ref ref="ErrorRollingFileAppender" />
      <appender-ref ref="InfoRollingFileAppender" />
    </logger>

    <!--Info介質設置-->
    <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定義文件存放位置,Info和Error保存在不同的文件夾,方便理解-->
      <file value="Log\\Info\\"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <datePattern value="yyyyMMdd'.txt'"/>
      <staticLogFileName value="false"/>
      <param name="MaxSizeRollBackups" value="100"/>
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <!--樣例:
        記錄時間:2016-10-11 14:03:00,540 
        線程ID:[1] 
        日志級別:  ERROR   
        錯誤內容
        -->
        <conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日志級別:  %-5level  %n%m%n"/>
      </layout>
        <!--輸出的等級 INFO-->
        <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>


    <!--Error介質設置-->
    <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定義文件存放位置-->
      <file value="Log\\Error\\"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <datePattern value="yyyyMMdd'.txt'"/>
      <staticLogFileName value="false"/>
      <param name="MaxSizeRollBackups" value="100"/>
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <!--樣例:
        記錄時間:2016-10-11 13:59:00,560 
        線程ID:[1] 
        日志級別:  INFO   
        信息內容
        -->
        <conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日志級別:  %-5level  %n%m%n"/>
      </layout>
      <!--設置輸出的等級 ERROR-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="ERROR" />
      </filter>
    </appender>
  </log4net>
</configuration>

3、在AssemblyInfo.cs中添加代碼,用於調用Log4Net.config:

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

4、實現LogHelper,代碼如下:

public class LogHelper
    {
        private static log4net.ILog log = log4net.LogManager.GetLogger("LogHelper");
        /// <summary>
        /// 整理異常信息
        /// </summary>
        /// <param name="error"></param>
        /// <returns></returns>
        private static string Msg(Exception error)
        {
            string str = "";
            if (error != null)
            {
                str = string.Format("異常類型:{0}\r\n異常消息:{1}\r\n異常信息:{2}\r\n",
                     error.GetType().Name, error.Message, error.StackTrace);
            }
            return str;
        }
        /// <summary>
        /// 輸出異常信息
        /// </summary>
        /// <param name="t"></param>
        /// <param name="ex"></param>
        public static void LogError(Exception ex)
        {
            log.Error(Msg(ex));
        }
        /// <summary>
        /// 輸出日記信息
        /// </summary>
        /// <param name="str"></param>
        public static void LogInfo(string str)
        {
            log.Info(str);
        }
    }

 5、至此,可以在代碼中方便地使用Log4Net記錄信息

try
{
    throw new Exception("這是一個新異常");
}
catch(Exception ex)
{
    LogHelper.LogError(ex);
} 
finally
{
    LogHelper.LogInfo("這是Info");
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved