C#配置及使用log4net

首先從官方網站http://logging.apache.org/log4net/下載最近版本的log4net組件。在程序中添加對log4net.dll的引用,就可以在程序中使用了。

下一步,編寫配置文件,內容如下

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<log4net>
<!--定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。-->
<root>
<level value="Debug" name="myLogger"/>
<appender-ref ref="ADONetAppender"/>
<appender-ref ref="LogFileAppender" />
</root>
<!--定義輸出到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!--定義文件存放位置-->
<file value="log4netfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd-HH:mm:ss" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]"/>
<param name="Footer" value="[Footer]"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c[%x] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] -%m%n" />
</layout>
</appender>
</log4net>
</configuration>

以上配置中最重要的就是紅色字體部分,設置了日志文件的文件名。

下面是使用代碼,log4net可以記載的日志類別包括:FATAL(致命錯誤)、ERROR(一般錯誤)、WARN(警告)、INFO(一般信息)、DEBUG(調試信息)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//+-------------------------------------------------------------------+
//+ FileName: LogExecutor
//+ File Created: 2012-6-5 9:07:02
//+-------------------------------------------------------------------+
//+ Purpose:
//+-------------------------------------------------------------------+
//+ History: 2012-6-5 9:07:02 by JingXiao
//+-------------------------------------------------------------------+
//+ Comment:
//+-------------------------------------------------------------------+
//+ Creator JingXiao
//+-------------------------------------------------------------------+

[assembly: log4net.Config.DOMConfigurator(Watch = true)]
namespace LogService
{
public class LogExecutor
{
#region Logger Setter

?

private static readonly log4net.ILog _log=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

#endregion

#region 構造函數
/// <summary>
/// 構造函數
/// </summary>
private LogExecutor()
{
System.IO.FileInfo configfile = new System.IO.FileInfo(@"LogCfg.config");
log4net.Config.DOMConfigurator.Configure(configfile);
}
#endregion

//單例
public static readonly LogExecutor instance = new LogExecutor();

#region 成員

/// <summary>
/// 普通信息寫日志
/// </summary>
/// <param name="msg">要記錄的字符串</param>
public void WriteInfo(string msg)
{
_log.Info(msg);
}

/// <summary>
/// 普通信息寫日志(字串拼接模式)
/// </summary>
/// <param name="msg">要記錄的字符串</param>
public void WriteInfo(string format,params object[] args)
{
string msg = string.Format(format, args);
_log.Info(msg);
}

/// <summary>
/// 普通異常信息寫日志
/// </summary>
/// <param name="sourceServiceID">(發生調用的)服務ID</param>
/// <param name="logInfo">日志內容</param>
public void WriteEx(string msg,Exception ex)
{
_log.Error(msg,ex);
}

/// <summary>
///
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public void WriteFatalEx(string msg,Exception ex)
{
_log.Fatal(msg,ex);
}

/// <summary>
/// 調試信息
/// </summary>
/// <param name="msg"></param>
public void WriteDebugInfo(string msg)
{
_log.Debug(msg);
}

/// <summary>
/// 調試信息(字串拼接模式)
/// </summary>
/// <param name="format"></param>
/// <param name="args"></param>
public void WriteDebugInfo(string format, params object[] args)
{
_log.Debug(string.Format(format, args));
}

#endregion
}
}

注意綠色部分一定不能省略,不然的話,代碼能跑起來,就是不寫入日志文件,擦。

另外紅色部分是設置使用我們剛才手寫的配置文件,注意,要把配置文件設置為“復制到輸出目錄”。

轉載于:https://www.cnblogs.com/ashlee/archive/2012/11/22/2782258.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260231.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260231.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260231.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ORACLE EBS常用表及查詢語句(最終整理版)

建議去看參考二 參考一&#xff1a; call fnd_global.APPS_INITIALIZE(1318,50583,401) select fnd_profile.VALUE(ORG_ID) FROM DUAL select * from hr_operating_units hou where hou.organization_id204 --fn…

mysql觸發器 當記錄的指定字段發生變化時,更新表中的另外一個字段,或者更新另外一張關聯表中關聯記錄的字段...

2019獨角獸企業重金招聘Python工程師標準>>> 注意&#xff1a;語句中出現的old&#xff0c;new&#xff0c;now&#xff08;&#xff09;&#xff0c;都為數據庫自帶的關鍵字&#xff0c;此處不做解釋。 兩種情況&#xff1a; 第一種&#xff1a;一張表中&#xff0…

通用無線設備對碼軟件_珞光全新發布國產通用軟件無線電平臺 :USRP-LW N310!珞光品牌已實現國產替代...

USRP-LW N310是一種網絡的軟件定義無線電&#xff08;SDR&#xff09;&#xff0c;它提供了部署大規模的可靠的和容錯性的分布式無線系統。USRP-LW N310通過引入遠程執行任務的能力簡化了對SDR系統的控制和管理&#xff0c;如更新軟件&#xff0c;重新啟動&#xff0c;工廠復位…

手把手玩轉win8開發系列課程(2)

對win8開發&#xff0c;上一節我們對win8進行了簡單的介紹&#xff0c;這一節我們來瞧一瞧他的開發環境搭建。 前奏。 這里所講的win8開發&#xff0c;主要是指Windows8 app store 上開發&#xff0c;及metro ui或叫morden ui 程序的開發。傳統桌面應用程序&#xff0c;網站應…

python通過什么來區分不同語句塊_Python語言通過

【填空題】小塊【填空題】離開;出發(n.)【填空題】好人啊中的 “ 啊 ” 讀( )【填空題】“ 潔癖 ” 的正確讀音是( )【單選題】The article suggests that when a person ________ under unusual stress he should be especially careful to have a well-balanced diet. (CET20…

【Android面試】Android面試題集錦 (陸續更新)

【Android面試】Android面試題集錦 (陸續更新) 分類&#xff1a; 【雜七雜八】2011-05-11 17:58 2064人閱讀 評論(0) 收藏 舉報一些常見的Android面試基礎題做下總結&#xff0c;看看你能做出多少道? 1. Intent的幾種有關Activity啟動的方式有哪些&#xff0c;你了解每個含義嗎…

cordova-plugin-app-version插件使用

此插件用來獲取開發軟件的版本號&#xff01;首先安裝此插件&#xff1a; 命令行中輸入 cordova plugin add cordova-plugin-app-version然后刷新項目&#xff0c;就會在在項目plugins文件夾下看到cordova-plugin-app-version,如下圖所示接下來就是使用此插件的語句獲取版本號c…

14.cookie與自動登陸

場景 webdriver可以讀取并添加cookie。有時候我們需要驗證瀏覽器中是否存在某個cookie&#xff0c;因為基于真實的cookie的測試是無法通過白盒和集成測試完成的。 另外更加常見的一個場景是自動登陸。有很多系統的登陸信息都是保存在cookie里的&#xff0c;因此只要往cookie中添…

不同串口通信速率超時時間_串口知識詳解 串口功能及電路介紹

一、串口的概念串行接口簡稱串口&#xff0c;也稱串行通信接口或串行通訊接口(通常指COM接口)&#xff0c;是采用串行通信方式的擴展接口。串行接口(SerialInterface)是指數據一位一位地順序傳送&#xff0c;其特點是通信線路簡單&#xff0c;只要一對傳輸線就可以實現雙向通信…

matlab 求最大值函數,利用matlab, 二元函數求最大值

求二元函數z0.2323*x^2-0.2866^22*(-0.5406)*a0^21.0203*a0^2*x^2/((x^2y^2)^0.5*tanh(2*(x^2y^2)^0.5)-x^2*(0.5733-u0)^2)的最大值&#xff0c;變量x和y都是在0.2附近。求z的最大值&#xff0c;以及x,y的取值。先用diff命令求z關于x,y的偏導數得到q(1)和q(2)兩個方程&#xf…

代碼生成那點事

在微軟技術中浸淫6年多了&#xff0c;我就常想啊&#xff0c;有沒有一個工具&#xff0c;能讓開發簡單一點&#xff0c;哪怕就簡單一點點&#xff1f;&#xff01; 這還是去年的事情&#xff0c;手里的項目都成功上線了&#xff0c;我和james聊天&#xff0c;我說咱們的這幾個項…

python反爬蟲破解_python中繞過反爬蟲的方法總結

我們在登山的途中&#xff0c;有不同的路線可以到達終點。因為選擇的路線不同&#xff0c;上山的難度也有區別。就像最近幾天教大家獲取數據的時候&#xff0c;斷斷續續的講過header、地址ip等一些的方法。具體的爬取方法相信大家已經掌握住&#xff0c;本篇小編主要是給大家進…

vue上傳文件php,php文件上傳 – 前端開發,JQUERY特效,全棧開發,vue開發

文件上傳一般有下面2種方式&#xff1a;有兩種&#xff1a;1、標準input表單方式&#xff0c;典型的用$_FILES進行接收&#xff1b;2、以Base64的方式進行傳送&#xff0c;一般是AJAX異步上傳。第一種標準的input表單方式&#xff0c;適用于大文件進行上傳&#xff0c;同時支持…

HDU 1003 Max Sum

同上題一樣&#xff0c;求連續子序列的最大和 而且比上題還要簡單一些&#xff0c;用不到long long了 直接水過 1 //#define LOCAL2 #include <iostream>3 #include <cstdio>4 #include <cstring>5 using namespace std;6 7 const int maxn 100000 10;8 in…

linux中如何查看進程占用了哪些端口?

使用netstat –apn | grep <進程名>便可以查看指定進程所占用的端口。轉載于:https://www.cnblogs.com/x10322/p/6020485.html

python畫端午節_我想帶你去旅行,我用Python提前做了一份端午旅游攻略,請收下!...

旅游是調節心情的有效途徑&#xff0c;越來越多的上班族和學生期待利用假期時間外出游 玩來開拓眼界、舒緩壓力。然而真正有了假期&#xff0c;許多人卻會因“去哪玩”的問題倍感困惑&#xff0c;六月份正是出行的好時節&#xff0c;期間還有端午節小長假&#xff0c;就讓我們一…

iOS: 在Object-C中監聽javascript事件( Javascript communicating back with Objective-C code)

在iOS開發之Objective-C與JavaScript交互操作 中我們可以通過stringByEvaluatingJavaScriptFromString 去實現在obj-C中獲取到相關節點屬性&#xff0c;添加javascript代碼等功能。但是我們如何監聽到javascript的響應事件呢。在MAC OS中有效的API去實現&#xff0c;但iPhone沒…

ECharts-圖表回執組件

測試地址&#xff1a;http://echarts.baidu.com/doc/example.html轉載于:https://www.cnblogs.com/HOH/p/3868617.html

matlab r2007課后答案,《MATLAB R2007基礎教程》習題答案.doc

打開“圖形窗口”&#xff0c;熟悉其中各個菜單和工具的功能和用法參考答案&#xff1a;略編寫程序&#xff0c;該程序在同一窗口中繪制函數在 之間的正弦曲線和余弦曲線&#xff0c;步長為 &#xff0c;線寬為 4 個象素&#xff0c;正弦曲線設置為藍色實線&#xff0c;余弦曲線…

第一本書14單元

14.linux中設備的訪問*****1.設備的訪問******1.設備識別/dev/xdxn /*硬盤設備/dev/sdal/dev/cdrom /*光驅/dev/mapper/* /*虛擬設備****.設備的發現*****fdish -l /*查看真實存在的設備cat /proc/partition /*系統能夠識別的設備blkid /*系統能夠掛載使用的設備df /*查看設備被…