在上文中,進行了簡單的log4配置搭建,也在實操中啟用了log4net的配置。這里做了一下總結。
方式一:
在運行時編程配置,代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Program { private readonly static ILog log = InitILog(); //private readonly static ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public static void Main(string[] args) { var gp=log4net.LogManager.GetRepository().Configured; log.Debug( "測試" ); Console.ReadKey(); } public static ILog InitILog() { var file = AppDomain.CurrentDomain.BaseDirectory + @ "\Config\log4net.config" ; FileInfo info = new FileInfo(file); XmlConfigurator.Configure(info); return LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); } } |
在方法InitLog中,通過獲取配置文件的路徑(配置文件路徑=應用程序基本目錄+程序集文件名+擴展名),使用FileInfo,Configure讀取配置文件內容,啟動log4net配置。
方式二:
assembly-level 配置屬性,看代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config/log4net.config" , Watch = true )]namespace SpringNetIOC { class Program { //private readonly static ILog log = InitILog(); private readonly static ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public static void Main(string[] args) { var gp=log4net.LogManager.GetRepository().Configured; log.Debug( "測試" ); Console.ReadKey(); } } } |
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config/log4net.config", Watch =true)]也可以在Properties/AssemblyInfo.cs== 文件里添加,讓程序找到log4net.config文件。
需要說明一下XmlConfigurator可配置的三個屬性。
a。ConfigFile 配置文件名和路徑,包括擴展名,文件相對于程序的根目錄。注意,此屬性不可和ConfigFileExtension 屬性同時使用。
b。ConfigFileExtension;配置文件的后綴名,缺省默認時'config',此屬性不可和ConfigFile屬性公用。
關于ConfigFileExtension屬性,特此記錄一下,留待后面有了更深入的了解,再做回顧。
c。Watch(bool屬性),如果為true,log4net框架在運行時,監視文件。如果配置文件被修改,則重新加載配置文件。
方式三:
app.config中的appSettings配置。看代碼:
1
2
3
4
5
6
7
8
9
|
< configuration > < appSettings > < add key = "log4net.Config" value = "Config/log4net.config" /> < add key = "log4net.Config.Watch" value = "True" /> </ appSettings > < startup > < supportedRuntime version = "v4.0" sku = ".NETFramework,Version=v4.5" /> </ startup > </ configuration > |
key為lognet.Config會覆蓋assembly XmlConfigurator 配置 中 ConfigFile 指定的值,key為log4net.Config.Watch會覆蓋assembly XmlConfigurator配置中Watch的指定值。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/king-tao/p/13267120.html