2011-11-01 47 views
0

我正在嘗試log4j將某些信息記錄到持久數據存儲中。我試圖使用java數據庫。log4j找不到數據庫放置日誌消息的位置

我已經創建了數據庫,命名爲firstdb名爲logging_data表。

但是當我嘗試運行我的迷你應用程序時,它會拋出java.sql.SQLException:未找到數據庫'firstdb'。

我不知道爲什麼,但我似乎可以玩數據庫,使用ij工具查詢一些行和其他東西。

有什麼建議。

我的屬性文件名爲log4jDB.properties

log4j.logger.LoggerClass=DEBUG,DB 

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.DB.driver=org.apache.derby.jdbc.EmbeddedDriver 
log4j.appender.DB.URL=jdbc:derby:firstdb 
log4j.appender.DB.user=app 
log4j.appender.DB.password= 

log4j.appender.DB.sql=INSERT INTO LOGGING_DATA VALUES('%x','%d{yyyy-MM-dd}','%C','%p','%m') 
log4j.appender.DB.layout=org.apache.log4j.PatternLayout 
log4j.appender.DB.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

我的測試類

import org.apache.log4j.Logger; 
import org.apache.log4j.PropertyConfigurator; 

public class LoggerClass { 
    public static void main(String[] args) { 
     Logger logger = Logger.getLogger(LoggerClass.class); 
     PropertyConfigurator.configure("log4jDB.properties"); 
     logger.info("Hello this is a info message"); 
    } 
} 

還增加了對Java DB的嵌入式驅動程序的類路徑是否會有所幫助。

乾杯! simon

回答

0

您必須更精確地指定數據庫位置。在JDBC連接您的log4j文件properteis把路徑,例如:

log4j.appender.DB.URL=jdbc:derby:C:/Temp/firstdb 

log4j.appender.DB.URL=jdbc:derby:./firstdb 
+0

哎最大,感謝您的答覆,但我真的不知道哪裏的Java DB存儲在硬盤的數據庫。但我會試着看看我能否找到它。 –

+0

它是名爲'firstdb'的文件夾。最有可能的是,它位於應用程序創建數據庫的上下文文件夾中。取決於如何(使用哪個工具創建) – Max

+0

好的,再次感謝max的幫助。下班後我會嘗試一下。感謝幫助:D –