【问题标题】:hsqldb messing up with my server´s logshsqldb 弄乱了我服务器的日志
【发布时间】:2011-08-23 13:59:05
【问题描述】:

我有一个用 Java 制作的服务器,需要使用数据库,我选择了 HSQLDB。

所以我的服务器中有很多条目,例如:

Logger.getLogger(getClass().getName()).  severe or info  ("Some important information");

当我运行我的服务器时,它转到System.out,我认为它是java.util.logging? 的默认配置,到目前为止它对我来说还可以,稍后我会将它转到一个文件...

但是,问题是,当我启动 hsqldb 时,它会破坏默认配置,我无法再读取 System.out 上的日志条目..

我已经尝试更改hsqldb.log_data=false,但它仍然会破坏默认配置。

有人可以帮助我吗? 我不想记录 hsqldb 事件,只记录我的服务器事件。

谢谢

【问题讨论】:

    标签: java logging hsqldb


    【解决方案1】:

    在今天发布的最新版本 2.2.0 中报告并修复了此问题。

    基本上,您将系统属性hsqldb.reconfig_logging 设置为 字符串值false

    系统属性通常在您的应用程序的 Java 启动命令中使用 -D 选项设置:

    java -Dhsqldb.reconfig_logging=false ....

    有关更改的详细信息,请参见下文:

    http://sourceforge.net/tracker/?func=detail&aid=3195462&group_id=23316&atid=378131

    此外,当您在应用程序中使用 fremework logger 时,应直接对其进行配置,以选择接受哪些级别的日志以及忽略哪些级别。

    hsqldb.applog 设置不影响框架日志记录,只控制文件日志。

    hsqldb.log_data=false 用于关闭内部数据更改记录,不应用于普通数据库。指南中解释了它用于批量导入的用法。

    【讨论】:

    • 我正在使用 hsqldb 2.2.0,并尝试使用:hsqldb.reconfig_logging=false 或 hsqldb.reconfig_logging='false' 启动它,但它没有用.....它只是变得严重级别日志到 system.out,但不是信息级别
    • 我说you set a system property。我加一段解释一下。
    • 哦,谢谢,它确实有效,抱歉我没有看到 'System.property' 部分,它使用:System.setProperty("hsqldb.reconfig_logging", "false");
    • 为什么需要指定一个系统属性来告诉 hsqldb 不要弄乱你的日志记录?为什么不让默认行为不理会一切?
    【解决方案2】:

    尝试将hsqldb.applog 设置为0,这会关闭应用程序对*.app.log 文件的日志记录。

    【讨论】:

      【解决方案3】:

      使用指向专用属性文件位置的属性启动服务器:

      -Djava.util.logging.config.file=/location/of/your/hsqldblog.properties"

      其中包含以下行以更改 Hsqldb 的 Java 日志记录。

      # Change hsqldb logging level 
      org.hsqldb.persist = WARNING
      

      旁注,您可以从以下级别中进行选择:

      严重警告信息 CONFIG FINE FINER FINEST

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-04
        • 2015-04-19
        • 1970-01-01
        • 2010-09-23
        相关资源
        最近更新 更多