如果我有一個JDBCAppender配置爲向MySQL 扔日誌消息,並且,當我的系統啓動時,我重新啓動數據庫是否重新連接到數據庫?在log4j內重新連接到DB
2
A
回答
1
我有這個用例在過去的週末發生。我的數據庫由Amazon AWS託管。它翻轉了我的日誌數據庫,並且所有通過Log4j JDBC Appender記錄到該數據庫的實例都停止了日誌記錄。我反彈了其中一個應用程序,它恢復了日誌記錄。
所以這個問題的答案,通過經驗,似乎是沒有。
如果數據庫關閉並重新聯機,則JDBC appender不會自動重新連接。
編輯
JDBCAppender getConnection可能覆蓋修復。
0
JDBCAppender中的log4j 1.2.15有以下代碼
protected Connection getConnection() throws SQLException {
if (!DriverManager.getDrivers().hasMoreElements())
setDriver("sun.jdbc.odbc.JdbcOdbcDriver");
if (connection == null) {
connection = DriverManager.getConnection(databaseURL, databaseUser,
databasePassword);
}
return connection;
}
所以如果連接不爲空,但壞了(需要重新連接)的log4j將返回斷開連接到它的邏輯,並執行它確實記錄到語句數據庫將失敗。
不是一個解決辦法,但一個妥善的解決辦法是用的logback取代log4j的:看到相關的答案:Log to a database using log4j
相關問題
- 1. 連接到mongo DB
- 2. 在DB連接
- 3. PowerBuilder:重新安裝OS和PB後如何重新連接到DB文件(.pb)
- 4. 無法重新連接到ODBC連接
- 5. .Net未連接到DB
- 6. 連接到strapi的MySql DB
- 7. VBA連接到MySQL DB
- 8. PHP PDO連接到SQLITE db
- 9. 無法連接到DB codeIgnitor
- 10. python db連接
- 11. DB連接
- 12. MySQL db連接
- 13. Python:遇到問題連接到Postgresql DB
- 14. db無法連接在php
- 15. db在php中連接
- 16. 連接DB在laravel 5
- 17. 連接到shell中的mongolab db,但不連接到Robomongo
- 18. Jupyter筆記本不斷重新連接到內核
- 19. 重新連接數據庫,如果連接重新啓動
- 20. 是否socket.io重新連接重新運行連接?
- 21. perl dbi重新連接斷開連接
- 22. NodeJS + Socket.io連接丟失/重新連接?
- 23. 重新連接到ZMQ飼料斷開
- 24. TYPO3重新連接到數據庫
- 25. 從ios設備重新連接到Chromecast
- 26. 自動重新連接到TCP主機
- 27. 重新連接到Linux中的進程
- 28. 重新連接到Neo4j REST服務
- 29. Python的重新連接到MySQLdb的
所以,現在我的問題是,如何解決這個問題。 – MikeNereson 2011-09-06 16:02:39
也許重寫'getConnection()'以確保連接有效。如果不創建新的連接。 – MikeNereson 2011-09-06 16:04:28