.net下log4net使用方法詳解
本文實例為大家分享了.net下log4net的使用方法,供大家參考,具體內(nèi)容如下
這里以控制臺應用程序為例
首先是要添加引用:


安裝后可以看到項目中多了log4net的引用:

添加應用程序配置文件app.config,配置log4net
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路徑-->
<file value="test.txt"/>
<!--是否向文件中追加日志-->
<appendToFile value="true"/>
<!--日志保留天數(shù)-->
<maxSizeRollBackups value="10"/>
<!--每個文件的大小。只在混合方式與文件大小方式下使用。超出大小后在所有文件名后自動增加正整數(shù)重新命名,數(shù)字最大的最早寫入??捎玫膯挝?KB|MB|GB。不要使用小數(shù),否則會一直寫入當前日志-->
<maximumFileSize value="1024KB"/>
<!--按照何種方式產(chǎn)生多個日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<rollingStyle value="Size"/>
<!--否只寫到一個文件中-->
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<!--記錄時間:%date 線程ID:[%thread] 日志級別:%-5level 記錄類:%logger 操作者ID:%property{Operator} 操作類型:%property{Action}%n 當前機器名:%property%n當前機器名及登錄用戶:%username %n 記錄位置:%location%n 消息描述:%property{Message}%n 異常:%exception%n 消息:%message%newline%n%n-->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
在Program.cs中添加代碼:
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
//創(chuàng)建日志記錄組件實例
ILog log = log4net.LogManager.GetLogger(typeof(Program));
//記錄錯誤日志
log.Error("發(fā)生了錯誤:", new Exception("log4net的測試錯誤信息"));
//記錄致命的錯誤
log.Fatal("發(fā)生了致命的錯誤:", new Exception("log4net測試致命信息"));
//記錄一般信息
log.Info("log4net的一般信息");
//記錄調(diào)試信息
log.Debug("log4net的調(diào)試信息");
//記錄警告信息
log.Warn("log4net警告信息");
Console.WriteLine("ok");
Console.ReadKey();
}
運行程序

這里是控制臺應用程序 ,如果是Web應用程序,可以在Global.asax.cs中Application_Start方法中調(diào)用log4net.Config.XmlConfigurator.Configure(); 在Global.asax.cs中定義一個變量,并在Application_Error中獲取異常并記錄:
public class Global : System.Web.HttpApplication
{
private static ILog log = LogManager.GetLogger(typeof(Global));
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
log.Error("發(fā)生了異常",Server.GetLastError());
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.net實現(xiàn)oracle數(shù)據(jù)庫中獲取新插入數(shù)據(jù)的id的方法
在oracle數(shù)據(jù)庫中實現(xiàn)插入數(shù)據(jù)的自動增長不是很容易,想在.net中實現(xiàn)獲取新插入數(shù)據(jù)的id,感興趣的朋友看下詳細的解決方法,希望對你有所幫助2013-04-04
.NET Core 1.0創(chuàng)建Self-Contained控制臺應用
這篇文章主要為大家詳細介紹了.NET Core 1.0創(chuàng)建Self-Contained控制臺應用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
.net中如何以純二進制的形式在內(nèi)存中繪制一個對象
這篇文章主要介紹了如何以純二進制的形式在內(nèi)存中繪制一個對象,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07

