2012-08-28 5 views
0

내 Java 응용 프로그램에서 사용할 싱글 톤 로거를 만들었습니다. hsql 독립형 데이터베이스에 연결하기 전에 모든 명령문이 정상적으로 작동합니다. 즉 메시지가 기록됩니다. 하지만 데이터베이스에 대한 연결 후 로깅 구문은 기록되지 않습니다. 연결 문을 제거하거나 데이터베이스 연결이 실패하면 해당 연결 문 다음의 문이 정상적으로 작동합니다.java 응용 프로그램에 로그인

왜 이런 일이 발생 했습니까 ?? 로그 파일에서

ORLogger.getLogger().log(Level.INFO, "Trying to connect databse . . ."); 
     Class.forName("org.hsqldb.jdbc.JDBCDriver").newInstance(); 
     ORLogger.getLogger().log(Level.INFO, "HSQL driver loaded . . ."); 
     dbConnection = DriverManager.getConnection("jdbc:hsqldb:file:db/db", "username", "password"); 
     ORLogger.getLogger().log(Level.INFO, "Connected to databse."); 

, 로그 메시지는 그 후, 메시지가 로그 파일에 추가 된 로그가없는, 아래 문

HSQL driver loaded . . . 

까지하지만. 연결 문을 제거하면 , 즉

dbConnection = DriverManager.getConnection("jdbc:hsqldb:file:db/db", "username", "password"); 

위의 연결 문 후 모든 메시지는 잘 작동하고 있습니다.

데이터베이스 연결에 문제가 없습니다. 모든 데이터베이스 관련 작업이 정상입니다. 이 로깅은 제대로 작동하지 않습니다.

+0

당신이 당신의 코드 –

+0

를 보여줄 것이다 : HSQLDB : 파일 : 당신이 당신의 데이터베이스와 연결하는 문제를 가지고있는 것처럼 –

+0

이 보이는 DB/DB를. 또한 자신 만의 로거를 구현했지만 바퀴를 재발 명하지 않은 것이 좋으며 [log4j] (http://logging.apache.org/log4j/2.x/)와 같은 입증 된 로거를 사용하십시오. –

답변

1

log4J 또는 JDK 로깅을 사용하는 경우 HSQLDB는 시스템 속성을 지정하지 않으면 설정을 변경합니다. 여기 참조 : 유 DBC를 사용하는 이유

http://hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_jdc_logging

+0

감사합니다. fredt 님, 귀하의 답변은 매우 유용했습니다. 나는 단지 똑같은 것을 생각하고있다. HSql 어떻게 든 로깅 시퀀스를 수정하고 있지만 정확히 무슨 일이 잘 모릅니다. System.getProperties(). setProperty ("hsqldb.reconfig_logging", "false"); – Sanjeev

+0

@sanjeev : 유용하다고 생각되는 답변을 upvote하는 것을 잊지 않고 질문에 가장 잘 대답하는 대답을 수락하십시오 (그러한 대답이있는 경우). – Keppil

0

디버거를 사용하여 DriverManager.getConnection에 대한 호출이 실제로 반환되는지 확인 했습니까? 연결이 끊어 지거나 프로그램이 연결이 끊어지기를 기다렸다가 다음 줄을 기록하지 못하는 것 같습니다.

jdbc:hsqldb:mem:testdb과 같은 것으로 연결 문자열을 확인하십시오. 작동하는 경우 hsqldb가 데이터베이스에 사용하려는 파일을 열 수 없기 때문일 수 있습니다.

관련 문제