Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java应用程序中的日志记录_Java_Logging_Hsqldb - Fatal编程技术网

java应用程序中的日志记录

java应用程序中的日志记录,java,logging,hsqldb,Java,Logging,Hsqldb,我已经创建了一个用于java应用程序的单例记录器。连接到hsql独立数据库之前的所有语句都工作正常,即消息被记录下来。但是连接到数据库之后的日志语句不会被记录。如果我删除了连接语句,或者与数据库的连接失败,那么该连接语句之后的语句将正常工作 为什么会发生这种情况 ORLogger.getLogger().log(Level.INFO, "Trying to connect databse . . ."); Class.forName("org.hsqldb.jdbc.JDBCDr

我已经创建了一个用于java应用程序的单例记录器。连接到hsql独立数据库之前的所有语句都工作正常,即消息被记录下来。但是连接到数据库之后的日志语句不会被记录。如果我删除了连接语句,或者与数据库的连接失败,那么该连接语句之后的语句将正常工作

为什么会发生这种情况

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");
上述连接语句之后的所有消息都工作正常


和数据库的连接没有问题。所有与数据库相关的工作都很好。除非此日志记录工作不正常。

是否使用调试器检查对
DriverManager.getConnection
的调用是否实际返回?听起来好像它在尝试打开连接时遇到了问题,而您不会看到下一行被记录,因为程序在等待打开连接时遇到了问题


检查您的连接字符串,首先尝试使用类似于
jdbc:hsqldb:mem:testdb
的东西,如果这样做有效,可能是hsqldb无法打开您试图用于数据库的文件。

如果您使用的是log4J或JDK日志记录,hsqldb将更改设置,除非您有系统属性告诉它不要这样做。请看这里:


你能展示一下你的代码吗?为什么你要使用dbc:hsqldb:file:db/db?看起来你在连接数据库时遇到了问题。另外,您已经实现了自己的记录器也很好,但不要重新发明轮子,使用一个经过验证的记录器,如。谢谢fredt,您的答案非常有用。我只是在想同样的事情。HSql正在以某种方式修改日志记录顺序,但我不知道到底发生了什么。System.getProperties().setProperty(“hsqldb.reconfig_logging”,“false”);解决问题problem@sanjeev:不要忘记对你认为有用的答案进行投票,并接受最能回答你问题的答案(如果存在这样的答案)。