簡體   English   中英

JDBC Appender 不寫異常堆棧跟蹤

[英]JDBC Appender does not write exception stack trace

我們使用 log4j2 並有兩個 appender: Console -Appender 和一個JDBC -Appender。
Console -Appender確實正確記錄了異常的完整堆棧跟蹤; 然而, JDBC -Appender 只記錄異常本身,沒有堆棧跟蹤。 根據我們的配置,它還應該編寫完整的跟蹤: pattern="%throwable{50}

這是我們的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。 任何幫助表示高度贊賞! 提前致謝!
- 巴德拉

你是對的,這個配置應該捕獲完整堆棧跟蹤的前 50 行。 我查看了代碼,但找不到任何可能導致此問題的明顯內容。 您可能發現了一個錯誤。 請在 Log4j2 JIRA 問題跟蹤器上提出這個問題。

您能否提供更多詳細信息:您使用的是什么數據庫(和版本)? 您想在其中存儲異常的列的 SQL 類型是什么?

另外,您是否嘗試過僅使用%throwable而不限制行數?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM