asp.net中Log4.net的工具類helper
更新時間:2022年04月19日 10:18:28 作者:農(nóng)碼一生
這篇文章介紹了asp.net中Log4.net的工具類helper,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、Config文件配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<!-- Level的級別,由高到低 -->
<!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL-->
<!-- 解釋:如果level是ERROR,則在cs文件里面調(diào)用log4net的info()方法,則不會寫入到日志文件中-->
<log4net>
<!--錯誤日志類-->
<logger name="logerror">
<!--日志類的名字-->
<level value="ALL" />
<!--定義記錄的日志級別-->
<appender-ref ref="ErrorAppender" />
<!--記錄到哪個介質(zhì)中去-->
</logger>
<!--信息日志類-->
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<!--錯誤日志附加介質(zhì)-->
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!-- name屬性指定其名稱,type則是log4net.Appender命名空間的一個類的名稱,意思是,指定使用哪種介質(zhì)-->
<param name="File" value="D:\Winform\控制臺\log4netDemo2\bin\Log\LogError\\" />
<!--日志輸出到exe程序這個相對目錄下-->
<param name="AppendToFile" value="true" />
<!--輸出的日志不會覆蓋以前的信息-->
<param name="MaxSizeRollBackups" value="100" />
<!--備份文件的個數(shù)-->
<param name="MaxFileSize" value="10240" />
<!--當(dāng)個日志文件的最大大小-->
<param name="StaticLogFileName" value="false" />
<!--是否使用靜態(tài)文件名-->
<param name="DatePattern" value="yyyyMMdd".htm"" />
<!--日志文件名-->
<param name="RollingStyle" value="Date" />
<!--文件創(chuàng)建的方式,這里是以Date方式創(chuàng)建-->
<!--錯誤日志布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="<BR>
--------------------------------------------header------------------------------------------------
"/>
<param name="ConversionPattern" value="<HR COLOR=red>%n異常時間:%d [%t] <BR>%n異常級別:%-5p <BR>%n異常類:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
<param name="Footer" value="<BR>
--------------------------------------------footer------------------------------------------------
"/>
</layout>
</appender>
<!--信息日志附加介質(zhì)-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\Winform\控制臺\log4netDemo2\bin\Log\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".htm"" />
<param name="RollingStyle" value="Date" />
<!--信息日志布局-->
<layout type="log4net.Layout.PatternLayout">
<!--這3行表示日志輸出的格式,若不喜歡這樣的樣式,可以查看下面的輸出樣式,自行修改-->
<!--<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>-->
<param name="Header" value="<BR>
--------------------------------------------header------------------------------------------------
"/>
<param name="ConversionPattern" value="<HR COLOR=blue>%n日誌時間:%d [%t] <BR>%n日誌級別:%-5p <BR>%n日誌類:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
<param name="Footer" value="<BR>
--------------------------------------------footer------------------------------------------------
"/>
</layout>
</appender>
<!--如下定義的其他輸入方式-->
<!--定義輸出到控制臺命令行中-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!--定義輸出到windows事件中-->
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!--定義輸出到數(shù)據(jù)庫中,這里舉例輸出到Access數(shù)據(jù)庫中,數(shù)據(jù)庫為C盤的log4net.mdb-->
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
<commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
<!--定義各個參數(shù)-->
<parameter>
<parameterName value="@logDate" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@logLevel" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<!--定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。-->
<root>
<!--文件形式記錄日志-->
<appender-ref ref="LogFileAppender" />
<!--控制臺控制顯示日志-->
<!--<appender-ref ref="ConsoleAppender" />-->
<!--Windows事件日志-->
<!--<appender-ref ref="EventLogAppender" />-->
<!-- 如果不啟用相應(yīng)的日志記錄,可以通過這種方式注釋掉
<appender-ref ref="AdoNetAppender_Access" />
-->
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>二、LogHelper工具類代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace log4netDemo2
{
public class LogHelper
{
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//這里的 loginfo 和 log4net.config 里的名字要一樣
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");//這里的 logerror 和 log4net.config 里的名字要一樣
//INFO
public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}
//ERROR
public static void WriteLog(string info, Exception ex)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, ex);
}
}
}
}三、測試代碼
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace log4netDemo2
{
class Program
{
static void Main(string[] args)
{
try
{
string a = "FF";
LogHelper.WriteLog(a);
int b = Convert.ToInt32(a);
}
catch (Exception ex)
{
LogHelper.WriteLog(ex.Message.ToString(), ex);
}
}
}
}四、測試輸出
loginfo

logerror

到此這篇關(guān)于Log4.net工具類helper的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
ASP.NET設(shè)計網(wǎng)絡(luò)硬盤之兩重要類代碼
要進行“網(wǎng)絡(luò)硬盤”功能設(shè)計,首先要熟悉.NET中處理文件和文件夾的操作。File類和Directory類是其中最主要的兩個類。了解它們將對后面功能的實現(xiàn)提供很大的便利2012-10-10
.NetCore?Web?Api?利用ActionFilterAttribute統(tǒng)一接口返回值格式及問題解析
在實際項目開發(fā)過程中,統(tǒng)一API返回值格式對前端或第三方調(diào)用將是非常必要的,在.NetCore中我們可以通過ActionFilterAttribute來進行統(tǒng)一返回值的封裝,對.NetCore?Web?Api?統(tǒng)一接口返回值格式相關(guān)知識感興趣的朋友一起看看吧2022-03-03
asp.net gridview實現(xiàn)全選,反選與刪除記錄的操作代碼
asp.net gridview實現(xiàn)全選,反選與刪除記錄的操作代碼,需要的朋友可以參考下。2011-07-07
.net?core中高效的動態(tài)內(nèi)存管理方案
這篇文章介紹了.net?core中高效的動態(tài)內(nèi)存管理方案,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
.net core利用orm如何操作mysql數(shù)據(jù)庫詳解
這篇文章主要給大家介紹了關(guān)于.net core利用orm如何操作mysql數(shù)據(jù)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05

