Мы используем log4j2 и имеем два приложения: Console
-Appender и JDBC
-Appender.
Console
-Appender правильный журнал полный стек следы исключений; однако, JDBC
-Appender делает запись только самого исключения, без трассировки стека. Согласно нашей конфигурации, он также должен написать полный след: pattern="%throwable{50}
JDBC Appender не пишет трассировку стека исключений
Вот наш log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j.test" status="trace">
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT" ignoreExceptions="false" >
<PatternLayout pattern="%d{ISO8601} %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<JDBC name="DatabaseAppender" tableName="logentry" ignoreExceptions="false" >
<ConnectionFactory class="....LoggingConnectionFactory" method="getDatabaseConnection" />
<Column name="eventDate" isEventTimestamp="true" />
<Column name="level" pattern="%level" isUnicode="false"/>
<Column name="logger" pattern="%logger" isUnicode="false"/>
<Column name="message" pattern="%message" isUnicode="false"/>
<Column name="exception" pattern="%throwable{50}" isUnicode="false"/>
</JDBC>
</Appenders>
<Loggers>
<Root level="${env:LOG_LEVEL}">
<AppenderRef ref="DatabaseAppender"/>
<AppenderRef ref="ConsoleAppender"/>
</Root>
</Loggers>
</Configuration>
Что не так? Здесь есть похожие записи; но они нацелены на log4j1 или нет JDBC Appender. Любая помощь высоко ценится! Заранее спасибо!
- badera
Спасибо, Ремко! если я использую только '% throwable', он отлично работает! Я подниму вопрос. Мы используем PostgreSQL 9.4.x и 9.5.x (неважно, какой из них и какие несовершеннолетние, поведение одинаковое). Тип столбца «исключение» - «символ, меняющийся». – badera
Отлично, рад, что мой ответ был вам полезен! –