在上文中,进行了简单的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