如果我有一个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. SQLAlchemy重新连接到db
- 2. DB在连接丢失后不重新连接
- 3. 连接到mongo DB
- 4. 连接到mysql db
- 5. 与DB的多重连接
- 6. PHP Mongodb - db连接体内
- 7. 在DB连接
- 8. PowerBuilder:重新安装OS和PB后如何重新连接到DB文件(.pb)
- 9. 重新连接到MySQL连接超时
- 10. 无法重新连接到ODBC连接
- 11. SocketException:重新连接后重新连接
- 12. VBA连接到MySQL DB
- 13. 无法连接到DB codeIgnitor
- 14. .Net未连接到DB
- 15. PHP PDO连接到SQLITE db
- 16. Python连接到Oracle DB
- 17. PDO无法连接到DB
- 18. 连接到DB(德比)
- 19. 连接到strapi的MySql DB
- 20. 从Linux连接到MsSQL db
- 21. 将derby DB连接到Java
- 22. 无法连接到Mongo db
- 23. 无法连接到Mongo DB
- 24. 重新连接到新的SVN仓库
- 25. Visual Studio到存在-db连接
- 26. 测试存在多少连接到DB
- 27. DB连接
- 28. Drupal db连接
- 29. MySQL db连接
- 30. python db连接
所以,现在我的问题是,如何解决这个问题。 – MikeNereson 2011-09-06 16:02:39
也许重写'getConnection()'以确保连接有效。如果不创建新的连接。 – MikeNereson 2011-09-06 16:04:28