【问题标题】:How to check whether the log is enabled or disabled?如何检查日志是启用还是禁用?
【发布时间】:2014-08-16 20:43:55
【问题描述】:

我正在尝试根据 ini 文件检查日志是启用还是禁用。 但是我每次都必须检查这个条件是启用还是禁用。 我将不得不检查此日志文件是否启用或禁用一次,然后在任何地方使用它。 我该怎么做?

if ("true".Equals(m_objGlobalConfig.SoapLog))
   {
     log.ErrorFormat(se.Message + Environment.NewLine + Environment.NewLine, se.StackTrace);
   }

有什么我可以为 appender 做这种定制的吗?

【问题讨论】:

    标签: log4net log4net-configuration


    【解决方案1】:

    您可以简单地基于此参数禁用 log4net 初始化,这将阻止 log4net 被配置和记录:

    在您的程序初始化期间,只需执行以下操作:

    if ("true".Equals(m_objGlobalConfig.SoapLog))
    {
        log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo("path/to/file"));
    }
    

    然后就可以正常登录了

    【讨论】:

    • 所以我们可以从 assemblyInfo.cs 中删除此配置并将其放入 config 类中?
    • 如果你觉得足够了,是的。 assemblyInfo 属性是配置 log4net 的一种方法。我个人不喜欢它,但这是一种有效且简单的方法。
    • 如果我从 assemblyInfo 中删除 log4net 的初始化,它根本无法创建日志文件。
    • 我已经这样做了 if ("true".Equals(m_boolSoapLog)) { log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(m_strGeneralFilePath)); } 和 m_strGeneralFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Config.APPDATA_PATH;但是它无法创建文件。而我的appconfig的配置是stackoverflow.com/questions/24136199/…
    • ConfigureAndWatch 获取配置文件的路径,而不是您要登录的文件。您要登录的文件在配置文件中定义
    猜你喜欢
    • 2012-11-06
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2011-12-29
    相关资源
    最近更新 更多