通过 log4j.xml 设置 ThrowableRenderer

set ThrowableRenderer via log4j.xml

我需要使用 log4j 设置自定义堆栈跟踪格式。如果我使用 log4j 属性 log4j.throwableRenderer=package.ThrowableRenderer 一切正常。如何使用 log4j.xml 格式完成相同的操作?我找到的唯一一篇同时使用 log4j.xml 格式和 ThrowableRendered 的文章是 here 。但这不起作用。 属性 未设置为记录器,断点在调试中也不起作用。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration strict="true" status="info">
    <ThrowableRenderer class="package.ThrowableRenderer"/>
    <Appenders>
        <Appender filePattern="file{yyyy-MM-dd}.log"
                  fileName="file.log" name="logfile" type="RollingFile">
            <Layout type="PatternLayout">
                <Pattern>%d{HH:mm:ss,SSS}- %m%n</Pattern>
            </Layout>
            <Policies>
                <TimeBasedTriggeringPolicy modulate="false" interval="1"/>
            </Policies>
        </Appender>
    </Appenders>
    <Loggers>
         ...
    </Loggers>
</Configuration>

如何将 ThrowableRenderer 设置为 log4j.xml 或在哪里可以找到相关文档?

此致,

原来log4j不支持ThrowableRenderer。相反,您可以扩展 ThrowablePatternConverter and create a new ConverterKey。后记只需将密钥添加到 convertorPattern,如

<Pattern>%d{HH:mm:ss} %m%n%YOUR_CREATED_KEY</Pattern>