如何在Java中为HTTPBuilder设置logging.properties

时间:2017-07-14 11:59:53

标签: java groovy java.util.logging apache-commons-logging httpbuilder

我正在尝试使用HTTP Builder获取我的连接日志。 我读了很多,听说要设置一个配置文件。 我正在使用此命令从终端执行我的jar

java -jar -Djava.util.logging.config.file=logging.properties Console-0.1.jar

我的logging.properties看起来像这样

handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=ALL
.level=FINEST
httpclient.wire.header.level=FINEST
org.apache.commons.httpclient.level=FINEST

我不明白为什么它不起作用。 有人有想法吗?

2 个答案:

答案 0 :(得分:0)

您正在使用相对路径加载logging.properties。将其更改为绝对路径并再次尝试。

接下来,将JConsole附加到正在运行的进程中:

  1. 转到MBeans选项卡。
  2. 展开节点java.util.logging->Logging->Attributes->Operations
  3. 选择getLoggerLevel并清除p0字段的值。这是根记录器。
  4. 点击getLoggerLevel按钮,查看该级别是否与您在logging.properties文件中的内容相匹配。
  5. 转到java.util.logging->Logging->Attributes->LoggerNames
  6. 双击值列中的java.lang.String[]单元格。如果您的logging.properties中的子记录器名称不存在,则logging.properties中的这些值不会执行任何操作。更正`logging.properties。
  7. 中的子记录器名称

    如果这些都不起作用,那么print your log tree

答案 1 :(得分:0)

我发现了一个很好且非常简单的解决方案。 只需获取根Logger并在调用http构建器之前设置级别

    ch.qos.logback.classic.Logger rootLogger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME)
    rootLogger.setLevel(level)