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


安裝后可以看到項(xiàng)目中多了log4net的引用:

添加應(yīng)用程序配置文件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"/>
<!--每個(gè)文件的大小。只在混合方式與文件大小方式下使用。超出大小后在所有文件名后自動(dòng)增加正整數(shù)重新命名,數(shù)字最大的最早寫(xiě)入??捎玫膯挝?KB|MB|GB。不要使用小數(shù),否則會(huì)一直寫(xiě)入當(dāng)前日志-->
<maximumFileSize value="1024KB"/>
<!--按照何種方式產(chǎn)生多個(gè)日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<rollingStyle value="Size"/>
<!--否只寫(xiě)到一個(gè)文件中-->
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<!--記錄時(shí)間:%date 線(xiàn)程ID:[%thread] 日志級(jí)別:%-5level 記錄類(lèi):%logger 操作者ID:%property{Operator} 操作類(lèi)型:%property{Action}%n 當(dāng)前機(jī)器名:%property%n當(dāng)前機(jī)器名及登錄用戶(hù):%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)建日志記錄組件實(shí)例
ILog log = log4net.LogManager.GetLogger(typeof(Program));
//記錄錯(cuò)誤日志
log.Error("發(fā)生了錯(cuò)誤:", new Exception("log4net的測(cè)試錯(cuò)誤信息"));
//記錄致命的錯(cuò)誤
log.Fatal("發(fā)生了致命的錯(cuò)誤:", new Exception("log4net測(cè)試致命信息"));
//記錄一般信息
log.Info("log4net的一般信息");
//記錄調(diào)試信息
log.Debug("log4net的調(diào)試信息");
//記錄警告信息
log.Warn("log4net警告信息");
Console.WriteLine("ok");
Console.ReadKey();
}
運(yùn)行程序

這里是控制臺(tái)應(yīng)用程序 ,如果是Web應(yīng)用程序,可以在Global.asax.cs中Application_Start方法中調(diào)用log4net.Config.XmlConfigurator.Configure(); 在Global.asax.cs中定義一個(gè)變量,并在A(yíng)pplication_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)
{
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET動(dòng)態(tài)生成靜態(tài)頁(yè)面的實(shí)例代碼
生成靜態(tài)頁(yè)有很多好處,可以緩解服務(wù)器壓力、方便搜索網(wǎng)站搜索等等,下面介紹一下生成靜態(tài)頁(yè)的實(shí)例代碼,有需要的朋友可以參考一下2013-07-07
ASP.NET My97DatePicker日期控件實(shí)現(xiàn)OA日期記事功能
這篇文章主要介紹了ASP.NET My97DatePicker日期控件實(shí)現(xiàn)OA日期記事功能的相關(guān)資料,需要的朋友可以參考下2016-04-04
Javascript調(diào)用Webservice的多種方法
通過(guò)xmlhttp+webservice(原始方法)2009-02-02
.NET 中Worker Service的使用入門(mén)
隨著 .NET Core 3.0 的發(fā)布,ASP.NET 團(tuán)隊(duì)引入了一個(gè)新的 Worker Service 項(xiàng)目模板,該模板作為 .NET SDK 的一部分發(fā)布。在本文中,我將向您介紹這個(gè)新模板,以及使用它開(kāi)發(fā)的一些實(shí)際的服務(wù)示例。2021-05-05
ASP.NET?MVC項(xiàng)目實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)無(wú)刷新
這篇文章介紹了ASP.NET?MVC項(xiàng)目實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)無(wú)刷新的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
ASP.NET實(shí)現(xiàn)多域名多網(wǎng)站共享Session值的方法
實(shí)現(xiàn)功能:可設(shè)置哪些站點(diǎn)可以共享Session值,這樣就防止別人利用這個(gè)去訪(fǎng)問(wèn),要想實(shí)現(xiàn)這個(gè)功能就必須得把Session值 放入數(shù)據(jù)庫(kù)中, 所有我們先在VS命令工具下注冊(cè)一個(gè)2011-11-11
.NET Core對(duì)象池的應(yīng)用:設(shè)計(jì)篇
本文主要講解對(duì)象池的三個(gè)核心對(duì)象:表示對(duì)象池的ObjectPool<T>對(duì)象、對(duì)象值提供者的ObjectPoolProvider對(duì)象,已及控制池化對(duì)象創(chuàng)建與釋放行為的IPooledObjectPolicy<T>對(duì)象。感興趣的小伙伴可以參考一下這篇文章2021-09-09
Asp.net利用JQuery彈出層加載數(shù)據(jù)代碼
最近看QQ空間里面的投票功能很使用。點(diǎn)擊一個(gè)鏈接就彈出一個(gè)層,然后再加載一些投票信息,旁邊的區(qū)域變成灰色不可用狀態(tài)。其實(shí)這不算什么高深的技術(shù),只要在A(yíng)SP.NET中利用JQuery結(jié)合一般處理程序ASHX即可搞定了。2009-11-11

