Log4net(二)-——关联配置文件的方式总结

关联配置文件的方式总结 

以控制台应用程序为例,在.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();
        }
    }

运行结果如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值