- 下載log4net Apache log4net - Download Apache log4net
- 修改AssemblyInfo.cs
添加 [assembly: log4net.Config.DOMConfigurator(ConfigFile="log.log4net",ConfigFileExtension="log4net",Watch=true)] - 在項目添加自己的logger .日志組件單件模式就可以了
public class Logger?
{
??????? private static log4net.ILog logger = log4net.LogManager.GetLogger("ALL");
??????? public static void Log(string message)
??????? {
??????????? logger.Debug(message);
??????? }?
??????? //在這里添加項目適合的Log 重載 如? public static void Log(string message,Exception ex)
} - 上面提到的log.log4net文件,先貼下我在項目里的配置:
<log4net>
? <root>
??? <level value="ALL" />
??? <appender-ref ref="rollingFile" />
? </root>?
? <appender? name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
??? <param name="File" type="" value="log" />
??? <param name="AppendToFile" value="true" />
??? <param name="RollingStyle" value="Date" />
??? <param name="DatePattern" value="yyyy-MM-dd".log"" />
??? <param name="maxSizeToRollBackups" value="10" />
??? <param name="maximumFileSize" value="5MB" />
??? <!--日志文件名 靜態 動態-->
??? <param name="StaticLogFileName" value="false" />
??? <layout type="log4net.Layout.PatternLayout,log4net">
????? <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
????? <param name="Header" value=" ----------------------header-------------------------- " />
????? <param name="Footer" value=" ----------------------footer-------------------------- " />
??? </layout>
? </appender>
? <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
??? <layout type="log4net.Layout.PatternLayout,log4net">
????? <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
??? </layout>
? </appender>
? <logger name="Log4NetTest.LogTest">
??? <level value="DEBUG" />
??? <appender-ref? ref="rollingFile" />
??? <appender-ref ref="coloredConsoleApp" />
??? <appender-ref ref="SystemEvent" />
? </logger>
</log4net>
開發項目里一直使用log4net,可是以前一直沒有寫筆記的習慣,做過的東西,學過的技術,搜到的好東西,在這里和大家分享
%m(message):輸出的日志消息,如ILog.Debug(…)輸出的一條消息
log4,%n(new line):換行
%d(datetime):輸出當前語句運行的時刻
%r(run time):輸出程序從運行到執行到當前語句時消耗的毫秒數
%t(thread id):當前語句所在的線程ID
lognet。%p(priority): 日志的當前優先級別,即DEBUG、INFO、WARN…等
%c(class):當前日志對象的名稱
%L:輸出語句所在的行號
%F:輸出語句所在的文件名
log4net自動刪log。%-數字:表示該項的最小長度,如果不夠,則用空格填充
例如,轉換模式為%d [%t] %-5p %c - %m%n 的 PatternLayout 執行 Logger.Log(“Hello”); 將生成類似于以下內容的輸出:
2010-04-15 09:55:11,421 [2720] DEBUG ALL - Hello.