Log4net用法


日記是我們在程序中經常用到的,故記於此

首先要下載Log4net.dll

官方網站:http://logging.apache.org/log4net/

vs里創建一個c#控制台程序,在App.config里設置

這里設置的目的,有兩個,一為了得到log4net.config的文件,另一個就是日記的開關,日記是否開啟

現在看主函數里怎么用

using log4net.Config;
using log4net;

namespace Test {
    class Program {
       
        static void Main(string[] args) {

            //初始化日志文件 
            string state = ConfigurationManager.AppSettings["IsWriteLog"];
            //判斷是否開啟日志記錄
            if (state == "1") {
                var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
                           ConfigurationManager.AppSettings["log4net"];
                var fi = new System.IO.FileInfo(path);
                log4net.Config.XmlConfigurator.Configure(fi);
            }

            LogHelper.WriteLog("holle world");

           
        }

       
    }
}
string state = ConfigurationManager.AppSettings["IsWriteLog"];這個是獲取日記的開關

 var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
                           ConfigurationManager.AppSettings["log4net"];
                var fi = new System.IO.FileInfo(path);
                log4net.Config.XmlConfigurator.Configure(fi);

 

上面fi就是log4net.config的文件位置,然后
 log4net.Config.XmlConfigurator.Configure(fi);


然后就是LogHelper類了,這個是個簡單的日記幫助類
    /// <summary>  
    /// LogHelper的摘要說明。   
    /// </summary>   
    public class LogHelper {
        /// <summary>
        /// 靜態只讀實體對象info信息
        /// </summary>
        public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo");
        /// <summary>
        ///  靜態只讀實體對象error信息
        /// </summary>
        public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror");

        /// <summary>
        ///  添加info信息
        /// </summary>
        /// <param name="info">自定義日志內容說明</param>
        public static void WriteLog(string info) {
            try {
                if (Loginfo.IsInfoEnabled) {
                    Loginfo.Info(info);
                }
            } catch { }
        }


        /// <summary>
        /// 添加異常信息
        /// </summary>
        /// <param name="info">自定義日志內容說明</param>
        /// <param name="ex">異常信息</param>
        public static void WriteLog(string info, Exception ex) {
            try {
                if (Logerror.IsErrorEnabled) {
                    Logerror.Error(info, ex);
                }
            } catch { }
        }
    }

最后是log4net.config設置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <logger name="logerror">
      <level value="ERROR" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    <logger name="loginfo">
      <level value="INFO" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <!--設置日志存儲路徑-->
      <param name="File" value="Data//WebLog//LogError//" />
      <!--是否追加到文件-->
      <param name="AppendToFile" value="true" />
      <!--最多產生的日志文件數,超過則只保留最新的n個。設定值value="-1"為不限文件數-->
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="1024" />
      <!--是否只寫到一個文件中-->
      <param name="StaticLogFileName" value="false" />
      <!--這是按日期產生文件夾,並在文件名前也加上日期-->
      <param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
      <!--按照何種方式產生多個日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n異常時間:%d [%t] %n異常級別:%-5p %n異常位置:[%thread] (%file:%line) %n消息描述:%message%n異常:%exception%n%n " />
      </layout>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <!--設置日志存儲路徑-->
      <param name="File" value="Data//WebLog//LogInfo//" />
      <!--是否追加到文件-->
      <param name="AppendToFile" value="true" />
      <!--最多產生的日志文件數,超過則只保留最新的n個。設定值value="-1"為不限文件數-->
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="1024" />
      <!--是否只寫到一個文件中-->
      <param name="StaticLogFileName" value="false" />
      <!--這是按日期產生文件夾,並在文件名前也加上日期-->
      <param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
      <!--按照何種方式產生多個日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n日志時間:%d [%t] %n日志級別:%-5p %n消息描述:%c [%x] %n%m %n " />
      </layout>
    </appender>
  </log4net>
</configuration>

然后就可以了,日記就在bin\Debug\Data\WebLog\LogInfo下

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM