2011-11-01 76 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 –