zoukankan      html  css  js  c++  java
  • log4net.config配置启用的几种方式

    在上文中,进行了简单的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 + @"Configlog4net.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属性,特此记录一下,留待后面有了更深入的了解,再做回顾。我碰到的问题时,使用如下代码:
      
    [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config",Watch =true)]

    始终找不到log4net的配置文件,log4net.LogManager.GetRepository().Configured返回的一直时false,也就是加载log4net配置的时候,加载失败了。我目前的思考和了解是,ConfigFileExtension 属性也是让程序找到log4net.config文件才对,但是它并没有起到实际的作用。这个问题,不知万能的网友可有了解的。

    求助啊~~~~~~~~~~~~!!!!!。

      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的指定值。

    我的问题:

    [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config",Watch =true)]

    使用ConfigFileExtension属性, 始终找不到log4net的配置文件,log4net.LogManager.GetRepository().Configured返回的一直时false,也就是加载log4net配置的时候,加载失败了。我目前的思考和了解是,ConfigFileExtension 属性也是让程序找到log4net.config文件才对,但是它并没有起到实际的作用。这个问题,不知万能的网友可有了解的。我现在认为属性ConfigFileExtension和ConfigFile功能时一致的,但是我使用ConfigFileExtension,就是获取不到配置文件,log4net.LogManager.GetRepository().Configured=false

    求助啊~~~~~~~~~~~~!!!!!。

  • 相关阅读:
    WebView.自动登录
    Android.对话框(AlertDialog/Toast/Snackbar)
    ubuntu解压rar
    sqlserver2005 存储过程模板及调用
    win7 32位下装oracle 10g报未知错误
    oracle下常用查询更新命令(身份证号判断男女,更新语句多表查询)
    如何建立一个android工程
    ubuntu14.04 配置android及sdk等相关操作
    mysql 常用简单的几个命令
    linux的tar简单使用
  • 原文地址:https://www.cnblogs.com/king-tao/p/13267120.html
Copyright © 2011-2022 走看看