关联配置文件的方式总结 

以控制台应用程序为例,在.net mvc项目中默认的配置位置为Web.config,其他的配置都一样

1.配置在AppConfig中

  在控制台应用程序中,如果我们把Log4net的配置放在App.config(App.config和Web.config是默认的位置)下,配置文件如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--申明一个名为"log4net"的自定义配置节-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!--Log4net 开始-->
<log4net>
<!--以下示例显示如何配置ColoredConsoleAppender 以将消息记录到控制台。默认情况下,消息被发送到控制台标准输出流。此示例显示如何突出显示错误消息-->
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<backColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- 设置根类别,添加appender并设置默认级别 -->
<root>
<level value="ALL"/>
<appender-ref ref="ColoredConsoleAppender" />
</root>
</log4net>
<!--Log4net 结束-->
</configuration>

我们可以有两种方法来关联配置文件,选择一种:

方式一:在  AssemblyInfo.cs 文件中添加关联代码

方式二:在命名空间上部添加关联代码

  关联的代码为: [assembly: log4net.Config.XmlConfigurator(Watch = true)]

方式三:在程序入口使用代码关联,Console应用程序直接在Main函数第一行加上一行代码: log4net.Config.XmlConfigurator.Configure();

2.把配置文件放在Log4net.config

  我么也可以在项目中新建一个Log4net.config文件,其内容和App.config中一样,包含ConfigSections和log4net两个节点,在方式一/二中,和上边的步骤一样,只需要我们把关联的代码改成: [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")] 即可。

  在方式三中,因为配置不在默认位置,所以我们要指定配置文件的信息,Console应用程序直接在Main函数第一行加上一行代码: log4net.Config.XmlConfigurator.Configure(fileInfo);,fileInfo为配置文件信息,详见下边栗子。

3.一个栗子

配置文件采用的上边的,保存在Log4net.Config文件中,关联配置的方式采用第三种,直接上代码:

 class Program
{
static void Main(string[] args)
{
//关联配置
System.IO.FileInfo fileInfo = new System.IO.FileInfo("Log4Net.config");//获取配置文件
//如果配置文件在App.config或者Web.config,不用查找配置文件,直接使用log4net.Config.XmlConfigurator.Configure()即可;
log4net.Config.XmlConfigurator.Configure(fileInfo);
Console.WriteLine("开始记录");
//获取一个ILog的实例
//myLogger为配置文件logger的name,如果没有logger节点,有root节点,代码中的"myLogger"可以为任意字符串,获取的都是默认的logger对象
ILog log = LogManager.GetLogger("myLogger");
log.Error("测试1", new Exception("这是一个Error"));
log.Warn("测试2", new Exception("这是一个Warn"));
log.Info("测试3", new Exception("这是一个Info"));
log.Debug("测试4", new Exception("这是一个Debug"));
log.Fatal("测试5", new Exception("这是一个Fatal"));
Console.ReadKey();
}
}

运行结果如下:

最新文章

  1. PHP设计模式笔记
  2. URL地址中使用中文作为的参数【转】
  3. Java Lambda表达式初探
  4. PlaceHolder的两种实现方式
  5. 怎样用好ZBrush 中的映射大师功能
  6. (转载)一个用于Gnome桌面的下拉式终端: Guake 0.7.0 发布
  7. 修改placeholder颜色
  8. CSS Margin(外边距)
  9. js 保留两位小数 多位小数(javascript)
  10. SpringMVC+Mybatis+Mysql实战项目学习--环境搭建
  11. 解码红外遥控信号——使用遥控器的按键来调节LED的亮度
  12. hibernate:There is a cycle in the hierarchy! 造成死循环解决办法
  13. Java中如何封装自己的类,建立并使用自己的类库?
  14. Django first lesson 环境搭建
  15. L2-024. 部落(并查集)*
  16. C++之数据类型
  17. [翻译]NUnit---Property and Random Attributes(十四)
  18. scrapy管道MySQL简记
  19. Swift AVFoundation 二维码扫描和生成
  20. codeforces600E Lomsat gelral

热门文章

  1. [buaa-SE-2017]个人项目
  2. CentOS查看版本及架构信息
  3. html5 sessionStorage VS loaclStorage
  4. Arif in Dhaka (First Love Part 2) UVA - 10294(Polya定理)
  5. HDU 6162 Ch’s gift
  6. 自学Linux Shell3.6-文件查看命令file cat more less tail head
  7. 架构师成长之路4.4-多维监控体系_zabbix
  8. sharepoint 2007页面显示真实的错误信息
  9. 【转】cJSON 源码分析
  10. 洛谷 P1691 有重复元素的排列问题 解题报告