『壹』 如何配置和使用log4net日誌
1.先弄個日誌記錄的類
/// <summary>
/// 使用LOG4NET記錄日誌的功能,在WEB.CONFIG里要配置相應的節點
/// </summary>
public class LogHelper
{
//log4net日誌專用
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
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);
}
}
}
2.WEB.CONFIG配置
在 configSections 節點上添加:
<section name="log4net" type="log4net.Config.,log4net" />
然後配置單獨的節點:
<!--日誌-->
<log4net>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="E:\xxx.com\xx.xxx.com\App_Log\Error\ErrorLog.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="E:\xxx.com\xxx.xxx.com\App_Log\Info\InfoLog.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
</log4net>
3.在GOLBAL文件里調用寫日誌:
void Application_Start(object sender, EventArgs e)
{
//在應用程序啟動時運行的代碼
//初始日誌的配置
LogHelper.SetConfig();
}
void Application_Error(object sender, EventArgs e)
{
//在出現未處理的錯誤時運行的代碼
Exception objExp = HttpContext.Current.Server.GetLastError();
string username = "";
string userid = "";
if (Session["ulogin"] != null)
{
string[] uinfo=Session["ulogin"].ToString().Split('|');
userid = uinfo[0];
username = uinfo[1];
}
Aotain114.Public.LogHelper.WriteLog("\r\n用戶ID:"+userid+"\r\n用戶名:"+username+"\r\n客戶機IP:" + Request.UserHostAddress + "\r\n錯誤地址:" + Request.Url + "\r\n異常信息:" + Server.GetLastError().Message, objExp);
}
『貳』 如何使用 log4net 日誌框架
一,創建測試工程,log4Net組件可以自己從網上下載,也可通過Nuget進行安裝。
二,創建日誌模型及資料庫表,因為我們的日誌信息可以輸出為文本,也可以輸出到資料庫。
三,添加MyLayout,MyPatternConverter類擴展PatternLayout。
四,添加Log4Net.config文件,進行輸入方式定義。
『叄』 如何使用 log4net 日誌框架
1 下載incubating-log4net-1.2.10.Zip文件,解壓
在log4net-1.2.10\src下面將log4net.sln用Visual Studio.NET打開,編譯後可以得到log4net.dll
你在解壓的文件夾下面還可以看到examples\net\1.0,你將cs-examples方案打開,將看到多個例子子,是學習的好資料
2 新建項目logweb,添加引用log4net.dll
3 在文件AssemblyInfo.cs下面加入
[assembly:log4net.Config.XmlConfigurator(ConfigFile="web.config",Watch=true)]
其中是ConfigFile="web.config"的web.config是你的配置文件名稱,
這將在第5步中提到
你將該代碼加入Global.asax文件中的namespace前面也可以
4 在文件Global.asax中
protected void Application_Start(Objectsender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
『肆』 如何使用log4net記錄日誌
第一步:
添加log4net.dll的引用
第二步:
在AssemblyInfo.cs文件中添加下面一句話:
[assembly:log4net.Config.XmlConfigurator(ConfigFile="Web.config",Watch=true)]
意思是log4net會自動尋找配置文件App.config或Web.config從而獲得並載入其中的配置信息。如果想log4net隨時監視配置文件以便重新載入的話就要這樣寫按照上面一樣寫(winform程序ConfigFile為App.config)。
第三步:
配置Web.config
+ViewCode
上面這段配置取自周公,配置的說明上面已經注釋的比較詳細了。
第四步:
在程序中記錄信息。我們在項目下Default.aspx的Page_Load方法加入如下代碼:
//獲得log4net實例
ILoglog=log4net.LogManager.GetLogger("LogFileAppender");
log.Info("Default.aspx下面的PageLoad方法被執行");
然後運行項目,可以發現在c:log4netfile.txt中已經記錄了一條日誌信息:
記錄時間:2011-04-2121:26:17,729線程ID:[4]日誌級別:INFO出錯類:LogFileAppenderproperty:[(null)]-錯誤描述:Default.aspx下面的PageLoad方法被執行
『伍』 log4net無法輸出日誌
建立一個dll,先寫一個類,引用log4Net.dll
C# code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Logger
{
public static bool GetTracerSwitchor()
{
string configPath = Application.StartupPath + "\\eSerialPro.exe";
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(configPath);
bool IsTracer = Convert.ToBoolean(config.AppSettings.Settings["IsTracer"].Value);
return IsTracer;
}
/// <summary>
/// 調試信息
/// </summary>
/// <param name="msg"></param>
public static void Debug(string msg)
{
bool IsTracer = GetTracerSwitchor();
if (IsTracer)
{
log4net.ILog log = log4net.LogManager.GetLogger("Test");
if (log.IsDebugEnabled)
{
log.Debug(msg);
}
log = null;
}
}
}
這樣調用
再在Assembly里加入信息
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
再在可執行程序的根目錄下,寫一個名為log4net.appconfig文件,內容如下
C# code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config., log4net"/>
</configSections>
<log4net>
<root>
<!--
<level value="ALL" />
<appender-ref ref="rootFile" />
-->
</root>
<logger name="Test">
<level value="DEBUG" />
<appender-ref ref="rollingFile" />
</logger>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="Application.log.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<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>
</log4net>
</configuration>
『陸』 如何使用log4net記錄日誌
首先說說為什麼要進行日誌記錄。在一個完整的程序系統裡面,日誌系統是一個非常重要的功能組成部分。它可以記錄下系統所產生的所有行為,並按照某種規范表達出來。我們可以使用日誌系統所記錄的信息為系統進行排錯,優化系統的性能,或者根據這些信息調整系統的行為。
Log4net是一個很著名的開源的日誌記錄組件。官方網址為:http://logging.apache.org/log4net/ ,使用Log4net能夠很簡單的為我們的程序添加日誌記錄功能。下面我們先通過一個網站例子來說明如何在.net中使用log4net。
http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html
『柒』 如何使用log4net記錄日誌
實現步驟:
一,下載log4net.dll (推薦從官網下載 http://logging.apache.org/log4net/download_log4net.cgi)
二,在項目中引用 log4net.dll
三,添加一個配置文件:我這里命名為 log4net.config(也可以在web.config裡面配置為便於管理故新建了一個配置文件)
<?xml version="1.0"?>
<configuration>
<configSections>
<section name= "log4net" type= "log4net.Config., log4net " />
</configSections>
<log4net>
<logger name="iNotes">
<level value="INFO"/>
<appender-ref ref="ADONetAppender" />
</logger>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="1" /><!--這里是表示是記錄1 條到緩沖區,滿1條後再寫入SQL server 可根據需要自定義配置-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="server=.;database=106_16_Driving;uid=sa;pwd=cx2012;" />
<commandText value="INSERT INTO OperateLog ([OperateType],[Describe],[Userid],[OperateTime]) VALUES (@OperateType, @Describe, @Userid, @OperateTime)" />
<parameter>
<parameterName value="@OperateType" />
<dbType value="String" />
<size value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{OperateType}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Describe" />
<dbType value="String" />
<size value="500" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{Describe}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Userid" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{Userid}" />
</layout>
</parameter>
<parameter>
<parameterName value="@OperateTime" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{OperateTime}" />
</layout>
</parameter>
</appender>
</log4net>
</configuration>
四,在項目的 AssemblyInfo.cs 文件的指定log4net 的配置文件路徑
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
五,自定義記錄函數
View Code
六,在 後台代碼中的調用
Operate_Log("1", "學員:" + txtName.Text);