如何在hsqldb中配置内部事件监控?当我运行我的Java应用程序时,我收到以下警告:
log4j:WARN No appenders could be found for logger (HSQLDB2C7984E18B.org.hsqldb.persist.Logger).
log4j:WARN Please initialize the log4j system properly.
documentation告诉我log4j不是唯一的选项,但它没有告诉我如何配置我的应用程序。谁能指点我这个文件?请记住,我不想要将log4j用于hsqldb。
值得一提的是我引用的第三方jar需要log4j。 hsqldb是否自动检测到log4j存在然后尝试使用它?或者我错过了有关日志记录如何工作的基本信息?
答案 0 :(得分:1)
结帐this link。它说
如果在类路径中找到Log4j,日志记录工具将切换到Log4j,否则将切换到java.util.logging。
答案 1 :(得分:0)
消息表明的结果是,由于没有找到appender,因此不会记录HSQLDB。
如果您希望取消该消息,请在log4j.properties文件中添加如下所示的行:
log4j.logger.HSQLDB2C7984E18B.org.hsqldb.persist.Logger=FATAL
这将仅记录FATAL事件,这在正常操作中不会发生。
您还声明您不想将log4j用于HSQLDB。可以使用log4j的软件组件将日志记录配置(包括级别和记录位置等)留给log4j属性设置,您可以对其进行编辑和配置。
在这种情况下,记录器名称基于“唯一”数据库名称,该名称最初是自动生成的,但您可以在HSQLDB中更改。
答案 2 :(得分:0)
因为正如YWE所说,如果在类路径中找到hsqldb默认使用log4j,我需要弄清楚如何覆盖第三方库中的log4j.properties。我设法做了如下:
将现有的log4j.properties复制到我的项目中,并在开头添加以下行:
log4j.rootLogger=WARN, CONSOLE
添加以下VM参数:
-Dlog4j.log4j.defaultInitOverride=true
-Dlog4j.configuration=C:/full/path/to/my/log4j.properties
确保在任何人(例如hsqldb)尝试使用log4j之前运行此代码行:
org.apache.log4j.PropertyConfigurator.configure("log4j.properties");