java - DropWizard 0.7.1 记录文件追加器问题

标签 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
          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/看到日志

相反,我看到它只是将默认的日志记录 INFO 级别的东西假脱机到控制台。注意:如果我用控制台替换"file",引导启动会告诉我“currentLogFilename 不是控制台的属性”等,所以 DI 正在触发。似乎如果我使用文件...我无法将它带到除默认信息级别的控制台之外的任何地方。

最佳答案

我想出了问题所在。

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

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

凭直觉,我简单地删除了 ApiConfiguration 中的绑定(bind),现在日志以预期的日志级别写入我预期的/var/test/位置。

关于java - DropWizard 0.7.1 记录文件追加器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826031/

相关文章:

java - 我想我用错了 JDBC

java - 复制数组——初始大小重要吗?

php - PHP 内部服务器错误

java - 在大型 Java 应用程序中标准化日志记录的方法

java - ClassNotFoundException : org. slf4j.记录器

java - MessageDigest.update(byte[]) 是做什么的?

unit-testing - 如何在grails test-app中查看网络流量? -也许是RESTClient日志记录?

spring - 如何简单地将 slf4j 添加到 pom.xml 包装 log4j?

akka - 让 Akka 知道 Play 的 logback 配置

java - 在 JPanel 中获得良好的网格布局