【问题标题】:How do you add a StackTrace to every log call in log4net?如何为 log4net 中的每个日志调用添加 StackTrace?
【发布时间】:2013-08-06 17:01:44
【问题描述】:

我正在使用 Log4Net 记录多层企业应用程序。

我知道当我使用 Log4Net 记录异常时,它会自动公开异常 StackTrace,但我想为每个日志调用记录 StackTrace,即使这些不是异常抛出。

我为什么需要那个?... 我想知道日志的调用来源(向下钻取...)

谢谢大家...

蒂亚戈·迪亚斯

【问题讨论】:

    标签: log4net stack-trace


    【解决方案1】:

    我找到了解决问题的方法。 我已经用我自己的方法包裹了 log4net,并且我已经创建了 LoggingEvent 实例。在每个实例中,我都使用了 Environment.StackTrace 的属性。

    这样我的应用程序中就有 StackTrace foreach 日志事件,即使没有抛出异常。

    谢谢大家..

    【讨论】:

      【解决方案2】:

      您可以使用 %location 获取调用方方法名称和行号,但不能在不扩展 log4net 的情况下获取整个堆栈跟踪。检查对这个问题的回答:

      Does log4net support including the call stack in a log message

      还可以查看 apache.org 上的 PatternLayout 文档页面,了解您可以输出的其他位置详细信息:

      http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html

      不确定这是否仍然适用于现代计算机,但 log4net 文档警告说生成调用者信息的成本很高。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        • 2011-04-20
        • 1970-01-01
        • 2021-01-29
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多