Java DropWizard 0.7.1记录文件追加器问题

Java DropWizard 0.7.1记录文件追加器问题,java,logging,slf4j,logback,dropwizard,Java,Logging,Slf4j,Logback,Dropwizard,使用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

使用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条目配置如下(仅使用基本定义)

我从未在/var/test中看到日志/


相反,我认为应用程序只是将默认的日志信息级别的东西输出到控制台。注意:如果我将“file”替换为console,引导启动会告诉我“currentLogFilename不是console的属性”等等,因此DI正在启动。看起来如果我用文件的话。。。在默认信息级别,我无法让它在控制台之外的任何地方运行。

我找到了问题所在

我的ApiConfiguration(io.dropwizard.Configuration的扩展)试图显式绑定到“logging”值,如下所示

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

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

看起来这与我所经历的相同将日志级别从Errorlogging级别更改为Info没有影响。错误也是完全有效的如果日志记录级别为ERROR,则只有在出现错误时才能看到日志。若并没有错误,你们将不会在logsbut中看到任何东西,正如我所说的,它设置为error and file,我会在控制台中看到信息。
@Valid
@NotNull
@JsonProperty("logging")
private LoggingFactory loggingFactory = new LoggingFactory();
public LoggingFactory getLoggingFactory()
{
    return loggingFactory;
}