Java DropWizard 0.7.1记录文件追加器问题
使用DW 0.7.1,我成功地看到了具有以下配置的http请求日志: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
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;
}