【问题标题】:Ignore an log4net Error in powershell忽略 powershell 中的 log4net 错误
【发布时间】:2014-10-15 08:10:39
【问题描述】:

我的脚本有问题,基本上我没有使用任何 log4net 或其他任何东西,而且我没有计划,但是我在脚本期间访问的一些资源我想有一些对这个 log4net 的引用,所以我收到以下消息:

log4net:ERROR XmlConfigurator: 未能找到配置部分 应用程序的 .config 文件中的“log4net”。检查您的 .config 文件 对于 和 元素。配置 部分应如下所示:

我真的不关心这个,因为这也不是一个真正的错误,我宁愿以某种方式从提示窗口中隐藏这些消息,这可能吗?

我怎样才能不费力气地忽略这些信息?

【问题讨论】:

    标签: powershell log4net


    【解决方案1】:

    此消息来自log4net internal debugging,表示配置文件中未找到log4net配置信息。我觉得奇怪的是,这种信息通常是可选的:

    在 log4net 中启用内部调试有 2 种不同的方法。 下面列出了这些。首选方法是指定 log4net.Internal.Debug 应用程序配置文件中的选项。

    • 也可以通过在应用程序的配置文件(不是 log4net 配置文件, 除非 log4net 配置数据嵌入到应用程序的配置中 文件)。 log4net.Internal.Debug 应用程序设置必须设置为 值为真。例如:

      此设置会在启动时立即读取,并会导致发出所有内部调试消息。

    • 要以编程方式启用 log4net 的内部调试,您需要将 log4net.Util.LogLog.InternalDebugging 属性设置为 true。 显然,设置得越早,产生的调试就越多。

    所以要么某个组件的代码使用代码方式,要么有一个配置值设置为true。您的选择是:

    • 查看配置文件以获取对 log4net.Internal.Debug 配置键的引用;如果您发现有一个设置为 true,请将其设置为 false。
    • 在配置文件中添加一个空的 log4net 部分,以满足配置器并防止它抱怨
    • 如果通过代码设置内部调试,您可能能够重定向控制台和跟踪附加程序(请参阅链接了解内部调试写入的位置)但这实际上取决于您的环境,因此您需要挖掘一个更多信息以找到如何捕获所有输出。不是很简单

    【讨论】:

    • 你是对的,我认为这是在配置文件中添加一个空白部分的最佳方法,但如何做到这一点?
    • 为其添加一个部分,
      然后是一个空的 log4net 标签
    • 我能不能在脚本中单独加载它,因为我不确定要修改哪个配置文件,我试图将它添加到我的主配置文件中,但没有成功
    • 这实际上取决于您在脚本中使用的组件(可执行文件或程序集,由您加载还是以其他方式加载?)。尝试寻找可能使用的不同配置文件,您可能会在其中一个中找到一些信息
    猜你喜欢
    • 2018-05-04
    • 2011-07-30
    • 1970-01-01
    • 2010-11-26
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多