【问题标题】:log4j can't locate the database where to put the log messageslog4j 找不到存放日志消息的数据库
【发布时间】:2011-11-01 15:01:22
【问题描述】:

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

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

但是当我尝试运行我的迷你应用程序时,它会抛出 java.sql.SQLException: Database 'firstdb' not found.

我不知道为什么,但我似乎可以使用 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 的嵌入式驱动程序。

干杯! 西蒙

【问题讨论】:

    标签: logging log4j javadb


    【解决方案1】:

    您必须更精确地指定数据库位置。在您的 jdbc 连接属性的 log4j 文件中放置路径,例如:

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

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

    【讨论】:

    • 嘿,max,感谢您的回复,但我不太确定 java db 将其数据库存储在硬盘上的什么位置。但我会试试看能不能找到。
    • 这是名为“firstdb”的文件夹。最有可能的是,它位于应用程序创建数据库的上下文所在的文件夹中。取决于如何(使用哪个工具创建)
    • 好的,再次感谢 max 的帮助。下班后我会试试看。感谢帮助:D
    • 嘿,max,我不知道 java db 是怎么回事,但它在 oracle 数据库上运行良好。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 2011-03-20
    • 2016-08-24
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多