【问题标题】:DropWizard 0.7.1 logging file appender issuesDropWizard 0.7.1 日志文件附加程序问题
【发布时间】:2015-03-05 17:39:26
【问题描述】:

使用 DW 0.7.1 我成功地看到了具有以下配置的 http 请求日志:

server:
  requestLog:
      appenders:
        - type: file
          currentLogFilename: /var/test/http-test.log
          archivedLogFilenamePattern: /var/test/http-test-%d.log
          archivedFileCount: 5
          timeZone: UTC

但是,非 http 请求日志记录的日志记录 yml 条目配置如下(仅使用基本定义)

logging:
  # The default level of all loggers. 
  # Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL.
  level: ERROR
  appenders:
    - type: file
      currentLogFilename: /var/test/test.log
      archivedLogFilenamePattern: /var/test/test-%d.log
      archivedFileCount: 5
      timeZone: UTC

从来没有在 /var/test/ 看到日志

相反,我看到它只是将默认的日志记录信息级别的东西输出到控制台。注意:如果我用控制台替换“文件”,引导程序启动会告诉我“当前日志文件名不是控制台的属性”等,所以 DI 正在触发。似乎如果我使用文件...除了默认信息级别的控制台之外,我无法让它去任何地方。

【问题讨论】:

  • 看起来像这样 stackoverflow.com/questions/27483442/… 是我正在经历的同样的事情
  • 将日志级别从错误更改为信息
  • 日志级别没有影响。 ERROR 也是完全有效的
  • 如果您的日志记录级别为 ERROR,则只有在出现错误时才会看到日志。如果没有错误,您将不会在日志中看到任何内容
  • 但正如我所说,它设置为 ERROR 和文件,我看到 INFO 到控制台。

标签: java logging slf4j logback dropwizard


【解决方案1】:

我发现了问题所在。

我的 ApiConfiguration(io.dropwizard.Configuration 的扩展)已尝试显式绑定到“日志记录”值,如下所示

@Valid
@NotNull
@JsonProperty("logging")
private LoggingFactory loggingFactory = new LoggingFactory();
public LoggingFactory getLoggingFactory()
{
    return loggingFactory;
}

凭直觉,我只是删除了 ApiConfiguration 中的绑定,现在日志以预期的日志级别写入我预期的 /var/test/ 位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 2017-03-07
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多