程序员

Log4net.config配置启用常用方法汇总

作者:admin 2021-04-16 我要评论

在上文中,进行了简单的log4配置搭建,也在实操中启用了log4net的配置。这里做了一下总结。 方式一: 在运行时编程配置,代码如下: class Program { private re...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

在上文中,进行了简单的log4配置搭建,也在实操中启用了log4net的配置。这里做了一下总结。

方式一:

  在运行时编程配置,代码如下:

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 配置属性,看代码:

[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配置。看代码:

<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://m.jb51.net/article/191014.htm

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 四两拨千斤——你不知道的VScode编码Ty

    四两拨千斤——你不知道的VScode编码Ty

  • 我是如何在 Vue 项目中做代码分割的

    我是如何在 Vue 项目中做代码分割的

  • position:sticky 粘性定位的几种巧妙应

    position:sticky 粘性定位的几种巧妙应

  • 从零到一搭建React组件库

    从零到一搭建React组件库