log4net的安裝與配置

1、下載並引用log4net.dll

2、編寫通用類

 1  public static class AppLog  2  {  3         private static ILog log;  4 
 5         static AppLog()  6  {  7             XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"));  8            // var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");
 9             log = LogManager.GetLogger(typeof(AppLog)); 10  } 11 
12         public static void Debug(object message) 13  { 14  log.Debug(message); 15  } 16 
17         public static void DebugFormatted(string format, params object[] args) 18  { 19  log.DebugFormat(format, args); 20  } 21 
22         public static void Info(object message) 23  { 24  log.Info(message); 25  } 26 
27         public static void InfoFormatted(string format, params object[] args) 28  { 29  log.InfoFormat(format, args); 30  } 31 
32         public static void Warn(object message) 33  { 34  log.Warn(message); 35  } 36 
37         public static void Warn(object message, Exception exception) 38  { 39  log.Warn(message, exception); 40  } 41 
42         public static void WarnFormatted(string format, params object[] args) 43  { 44  log.WarnFormat(format, args); 45  } 46 
47         public static void Error(object message) 48  { 49  log.Error(message); 50  } 51 
52         public static void Error(object message, Exception exception) 53  { 54  log.Error(message, exception); 55  } 56 
57         public static void ErrorFormatted(string format, params object[] args) 58  { 59  log.ErrorFormat(format, args); 60  } 61 
62         public static void Fatal(object message) 63  { 64  log.Fatal(message); 65  } 66 
67         public static void Fatal(object message, Exception exception) 68  { 69  log.Fatal(message, exception); 70  } 71 
72         public static void FatalFormatted(string format, params object[] args) 73  { 74  log.FatalFormat(format, args); 75         }

 

3、編寫配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <log4net>
    <!--定義輸出到文件中-->
    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
      <!--日誌的路徑-->
      <file value="Logs/" />
      <!--是否覆蓋,默認是追加true-->
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <!--文件名稱-->
      <DatePattern value="yyyy-MM-dd HH'時.log'"></DatePattern>
      <!--設置無限備份=-1 ,最大備份數爲1000-->
      <param name="MaxSizeRollBackups" value="1000"/>
      <!--每一個文件的大小-->
      <param name="MaximumFileSize" value="500KB"/>
      <!--名稱是否能夠更改 爲false爲能夠更改-->
      <param name="StaticLogFileName" value="false"/>
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <conversionPattern value="%n【記錄時間】%date%n【描述】%message%n"/>
      </layout>
    </appender>
    <!--定義輸出到控制檯命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n【記錄時間】%date%n【描述】%message%n"/>
      </layout>
    </appender>
    <!--定義輸出到windows事件中-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n========== %n【日誌級別】%-5level %n【記錄時間】%date %n【線程編號】[%thread] %n【執行時間】[%r]毫秒 %n【出錯文件】%F %n【出錯行號】%L %n【出錯的類】%logger 屬性[%property{NDC}] %n【錯誤描述】%message %n【錯誤詳情】%newline"/>
      </layout>
    </appender>
    <!--定義輸出到Trace中-->
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <!--<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />-->
        <conversionPattern value="%n========== %n【日誌級別】%-5level %n【記錄時間】%date %n【線程編號】[%thread] %n【執行時間】[%r]毫秒 %n【出錯文件】%F %n【出錯行號】%L %n【出錯的類】%logger 屬性[%property{NDC}] %n【錯誤描述】%message %n【錯誤詳情】%newline"/>
      </layout>
    </appender>
    <!--定義日誌的輸出媒介,下面定義日誌以四種方式輸出。也能夠下面的按照一種類型或其餘類型輸出。-->
    <root>
      <!--日誌的級別 OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL 只有日誌輸出級別大於或等於配置的級別才能輸出日誌信息-->
      <level value="ALL" />
      <!--文件形式記錄日誌-->
      <appender-ref ref="SysAppender"/>
      <!--控制檯控制顯示日誌-->
      <appender-ref ref="ConsoleAppender"/>
      <!--Windows事件日誌-->
      <!--<appender-ref ref="EventLogAppender"/>-->
      <!--TraceAppender日誌-->
      <!--<appender-ref ref="TraceAppender"/>-->
    </root> <!--過濾NHibernate生成的大量日誌-->
    <logger name="NHibernate" additivity="false">
      <level value="All"/>
    </logger>
  </log4net>
</configuration>

注意:配置文件在屬性上面,要設置成 「始終複製」sql

 

4、啓動設置

 在Properties下的AssemblyInfo.cs文件中加入windows

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

5、調用

AppLog.Info("開始關閉sqlExecute");

相關文章
相關標籤/搜索