首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >log4net.config中的${ stacktrace }只是在日志文件中写入堆栈跟踪

log4net.config中的${ stacktrace }只是在日志文件中写入堆栈跟踪
EN

Stack Overflow用户
提问于 2017-07-04 09:40:20
回答 1查看 1.5K关注 0票数 0

我希望将调用日志函数的堆栈跟踪写入日志文件。

我使用的是Log4Net 1.2.10.0和C# .NET 4.0 (不能更改其中任何一个)。

日志记录被称为使用

代码语言:javascript
运行
复制
private static log4net.ILog log = log4net.LogManager.GetLogger(global::System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

log.Info("Show the stacktrace here");

log4net.config文件如下所示

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true">

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="${ALLUSERSPROFILE}\Application1\Application1.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value=" yyyy-MM-dd" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date{ISO8601}|[%thread]|%-5level|%message|%stacktrace{5}%newline" />
    </layout>
  </appender>

  <root>
    <level value="INFO" />
    <appender-ref ref="RollingLogFileAppender" />
  </root>
</log4net>

日志文件如下所示

2017-07-04 11:18:12,206件

因此,我没有显示实际的堆栈跟踪,而是得到了'stacktrace{5}‘这个词。

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 09:57:28

您需要传递异常实例,如下所示

代码语言:javascript
运行
复制
catch(Exception ex)
{
    // the form that takes two args has an exception as second, prints trace...
    _log.Error("My custom message", ex);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44902379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档