Log4Net使用技巧
1.Log4Net簡介
2.Log4Net 下載
3.使用步驟
<?xml version="1.0" encoding="utf-8"?>
<!--
有關如何配置 ASP.NET 應用程序的詳細消息,請訪問
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- 定義日誌記錄類型爲 滾動文件類型 -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!-- 定義日誌文件的位置,此爲網站根目錄下的Log文件夾下的Moumoulog.txt文件 -->
<file value="Log/Moumoulog.txt"/>
<!-- 日誌 追加在日誌文件中 -->
<appendToFile value="true"/>
<!--日誌最大個數,都是最新的-->
<maxSizeRollBackups value="10"/>
<!--每個日誌文件的最大容量,超過該容量自動創建 新的日誌文件-->
<maximumFileSize value="1024KB"/>
<rollingStyle value="Size"/>
<!--置爲true,當前最新日誌文件名永遠爲file節中的名字-->
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<!--日誌記錄級別,默認是DEBUG-->
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
<appSettings>
<!-- 連接字符串是否加密 -->
<add key="ConStringEncrypt" value="false"/>
<!-- 數據庫連接字符串,(如果採用加密方式,上面一項要設置爲true;加密工具,可在官方下載,
如果使用明文這樣server=127.0.0.1;database=.....,上面則設置爲false。 -->
<add key="ConnectionString" value="server=.\sqlexpress;database=WordFilter;uid=sa;pwd=hello"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
</configuration>
3.3 Common類庫添加log4net的引用:
3.4 Common類庫添加LogHelper.cs類文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Moumou.Enterprise.Common
{
public class LogHelper
{
//log4net日誌專用
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
//設置log4net獲取配置信息、從配置文件獲取
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
<span style="white-space:pre"> </span>//<span style="font-family: Arial, Helvetica, sans-serif;">從文件獲取</span>
public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
}
/// <summary>
/// 普通的文件記錄日誌
/// </summary>
/// <param name="info"></param>
public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}
/// <summary>
/// 錯誤日誌
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
}
}
3.5 在Global.asax文件的Application_Start方法啓動調用log4net
protected void Application_Start(object sender, EventArgs e) {
LogHelper.SetConfig();
LogHelper.WriteLog("系統啓動");
}
3.6 在Application_Error記錄錯誤日誌
protected void Application_Error(object sender, EventArgs e) {
//在出現未處理的錯誤時運行的代碼
Exception objExp = HttpContext.Current.Server.GetLastError();
LogHelper.WriteLog("異常:" + Server.GetLastError().Message, objExp);
}
記錄錯誤日誌如下: