log4j无法找到数据库放置日志消息的位置

时间:2011-11-01 15:01:22

标签: logging log4j javadb

我正在尝试使用log4j将一些信息记录到持久性数据存储区。我试着用java db。

我已经使用名为 logging_data 的表创建了名为 firstdb 的数据库。

但是当我尝试运行我的迷你应用程序时,它会抛出 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的嵌入式驱动程序,如果这样会有所帮助。

喝彩! 西蒙

1 个答案:

答案 0 :(得分:0)

您必须更精确地指定数据库位置。在你的log4j文件中为jdbc连接propertyeis put path,例如:

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

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