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 }
<?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
在Properties下的AssemblyInfo.cs文件中加入windows
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
AppLog.Info("開始關閉sqlExecute");