我正在使用
Logback + SLF4J
来记录那些带有akka.actor.ActorLogging
特征的actor的日志。然而,当我执行代码log.error("Error occur!", e)
时,异常e
的堆栈跟踪没有被记录,只打印了一行Error occur! WARNING arguments left: 1
。我想知道为什么以及如何在日志文件中打印堆栈跟踪。谢谢。以下是我的logback.groovy
文件配置。appender("FILE", RollingFileAppender) {
file = "./logs/logd.txt"
append = true
rollingPolicy(TimeBasedRollingPolicy) {
fileNamePattern = "./logs/logd.%d{yyyy-MM-dd}.log"
maxHistory = 30
}
encoder(PatternLayoutEncoder) {
pattern = "%date{ISO8601} [%thread] %-5level %logger{36} %X{sourceThread} - %msg%n"
}
}
root(DEBUG, ["FILE"])
LazyLogging
替换了ActorLogging
,并在所有我的actors中将log.
替换为logger.
。但要注意,这样做会在日志中失去actor地址字符串。因此,在找到真正的解决方案之前,可以使用此方法。 - Uniqus