2012-09-11 5 views
0

log4j 및 spring JDBC에 문제가 있습니다. 내가 뭔가를 놓친 것 같아서 오해의 경우에 나를 바로 잡으려고 주저하지 마라. 나는 현재 당신이 볼 수있는 바와 같이 log4j.xml 파일log4j spring jdbc 예외

<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> 

을 사용하고

, 그것은 주로 특정 파일에 everyhting을 리디렉션합니다. 주된 문제점은 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 파일을 사용, 추가 또는 삭제해야합니까? 사전에

감사합니다, 내 approximative 영어 :

+1

'com.mypackage'와'org.springframework.jdbc'에서''를 제거하는 것으로 시작할 수 있습니다 - 하위 로거는 루트 로거에서이 appender를 상속하므로 추가하지 않아야합니다 다시 직접. –

+0

오케이 정말 참으로 쓸모가 없었습니다. 고마워요! 예외에 대한 아이디어가 있으십니까? –

답변

1

오류 메시지가

Exception in thread "AWT-EventQueue-0" 

이 전혀 log4j를 통해 기록되는 아니에요 제안 시작하지만, 단순히 사실에 대한

죄송합니다 모든 Java 스레드가 기본적으로 가져 오는 표준 "캐치 예외"논리로 인해 콘솔에 나타납니다. 그러면 log4j 설정이 효과가없는 이유를 설명 할 수 있습니다. 자신의 코드에서 적절한 지점에서 예외를 catch하고 직접 기록해야합니다.

+0

그것은 정확히 문제가되었습니다! 넌 나를 구했다 ! –