我遇到了 log4j 和 spring JDBC 的问题。我可能遗漏了一些东西,所以如果有误解,请不要犹豫纠正我。
我目前正在使用 log4j.xml 文件
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p %C{1}.%M - %m%n" />
</layout>
</appender>
<appender name="stationPdf" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/stationPdf.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="5000KB" />
<param name="MaxBackupIndex" value="3" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p %C{1}.%M - %m%n" />
</layout>
</appender>
<category name="com.mypackage">
<level value="debug" />
<appender-ref ref="stationPdf" />
</category>
<category name="org.springframework.jdbc">
<level value="debug" />
<appender-ref ref="stationPdf" />
</category>
<root>
<level value="debug" />
<appender-ref ref="console" />
<appender-ref ref="stationPdf" />
</root>
如您所见,它主要是重定向特定文件中的所有内容。主要问题与spring jdbc有关。我正在使用一个小型数据库来存储属性,我需要连接到这个数据库来提取数据。
因此,当我输入密码错误时,如预期的那样,我会收到以下异常:
Exception in thread "AWT-EventQueue-0" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:729)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:749)
at com.mypackage.dao.impl.PropertiesDaoJdbcImpl.selectProperty(PropertiesDaoJdbcImpl.java:37)
at com.mypackage.data.ExtractedDataClass.loadProperties(ExtractedDataClass.java:42)
at com.mypackage.accueil.Accueil.<init>(Accueil.java:138)
at com.mypackage.accueil.Accueil$12.run(Accueil.java:896)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
[...]
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
[...]
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4098)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4030)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:951)
[...]
问题是我无法在我的日志文件中得到这个异常。它出现在控制台中,但从未出现在我的文件中。我应该在 log4j.xml 文件中使用、添加或删除什么来获取这些异常?
提前致谢,
对不起我的近似英语:)