C#Log4net設定
這篇介紹在C#上安裝Log4net以及如何設定及使用功能
對專案右鍵->管理NuGet套件->安裝log4net
log4net.config 如下
ERROR和FATAL會多印出程式行號
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| <?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <root> <level value="DEBUG" /> <appender-ref ref="DebugRollingFileAppender"/> <appender-ref ref="InfoRollingFileAppender"/> <appender-ref ref="WarnRollingFileAppender"/> <appender-ref ref="ErrorRollingFileAppender"/> <appender-ref ref="FatalRollingFileAppender"/> </root> <appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender" level="DEBUG"> <file type="log4net.Util.PatternString" value="C:\NetLog\.log"/> <preserveLogFileNameExtension value="true"/> <staticLogFileName value="false"/> <param name="AppendToFile" value="true"/> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd-'DEBUG'"/> <encoding value="UTF-8"/> <maxSizeRollBackups value="30" /> <maximumFileSize value="100MB"/> <countDirection value="1"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date %-5level [%method] - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="DEBUG" /> </filter> </appender> <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender" level="INFO"> <file type="log4net.Util.PatternString" value="C:\NetLog\.log"/> <preserveLogFileNameExtension value="true"/> <staticLogFileName value="false"/> <param name="AppendToFile" value="true"/> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd-'INFO'"/> <encoding value="UTF-8"/> <maxSizeRollBackups value="30" /> <maximumFileSize value="100MB"/> <countDirection value="1"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date %-5level [%method] - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="INFO" /> </filter> </appender> <appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender" level="WARN"> <file type="log4net.Util.PatternString" value="C:\NetLog\.log"/> <preserveLogFileNameExtension value="true"/> <staticLogFileName value="false"/> <param name="AppendToFile" value="true"/> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd-'WARN'"/> <encoding value="UTF-8"/> <maxSizeRollBackups value="30" /> <maximumFileSize value="100MB"/> <countDirection value="1"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date %-5level [%method] - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="WARN" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" level="ERROR"> <file type="log4net.Util.PatternString" value="C:\NetLog\.log"/> <preserveLogFileNameExtension value="true"/> <staticLogFileName value="false"/> <param name="AppendToFile" value="true"/> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd-'ERROR'"/> <encoding value="UTF-8"/> <maxSizeRollBackups value="30" /> <maximumFileSize value="100MB"/> <countDirection value="1"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date %-5level [%method](%logger:%line) - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="ERROR" /> </filter> </appender> <appender name="FatalRollingFileAppender" type="log4net.Appender.RollingFileAppender" level="FATAL"> <file type="log4net.Util.PatternString" value="C:\NetLog\.log"/> <preserveLogFileNameExtension value="true"/> <staticLogFileName value="false"/> <param name="AppendToFile" value="true"/> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd-'FATAL'"/> <encoding value="UTF-8"/> <maxSizeRollBackups value="30" /> <maximumFileSize value="100MB"/> <countDirection value="1"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%-5level] [%method](%logger:%line) - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="FATAL" /> <param name="LevelMax" value="FATAL" /> </filter> </appender> </log4net> </configuration>
|
需要使用的.cs 需加入設定
1
| XmlConfigurator.Configure(new FileInfo("./log4net.config"));
|
程式行號功能需搭配.pdb
工具->選項-偵錯->符號
符號檔(.pdb)位置勾選Microsoft符號伺服器
佈版需要將.exe執行檔和.pdb符號檔一起deploy
log才會顯示行號
Log使用方法
1 2 3 4 5 6 7 8 9
| public class LogUtil { public static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); } LogUtil.logger.Info(""); LogUtil.logger.Debug(""); LogUtil.logger.Warn(""); LogUtil.logger.Error(""); LogUtil.logger.Fatal("");
|