我找到了解决方案。
更换PatternLayout
类与EnhancedPatternLayout
class.
org.apache.log4j.EnhancedPatternLayout
您还需要包括apache-log4j-额外依赖项
Or 将其包含在你的 pom 中:
<dependency>
<groupId>log4j</groupId>
<artifactId>apache-log4j-extras</artifactId>
<version>1.1</version>
</dependency>
您现在可以访问 %throwable
%throwable{short}
or %throwable{1}
将输出堆栈的第一行
痕迹。throwable{none}
or throwable{0}
将抑制堆栈跟踪。%throwable{n}
如果是正整数,将输出 n 行堆栈跟踪
或者如果是负整数则省略最后 -n 行。
我添加到我的表中,
TABLE `app_logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app` varchar(255) DEFAULT NULL,
`log_date` varchar(255) DEFAULT NULL,
`log_level` varchar(255) DEFAULT NULL,
`location` varchar(255) DEFAULT NULL,
`loc` varchar(255) DEFAULT NULL,
`message` text,
`throwable` text,
`stacktrace` text,
PRIMARY KEY (`id`)
)
并更新了我的模式来填充这些列。
"INSERT INTO app_logs (app, log_date, log_level, location, loc, message, throwable, stacktrace) VALUES ('my-apps-name', '%d{ISO8601}','%p', '%C.java', '%C{1}.java:%L', '%m', '%throwable{short}', '%throwable{100}')"