使用dropwizard时,必须为config.yml指定“maxFileSize”

时间:2016-09-06 06:46:08

标签: java yaml dropwizard rollingfileappender fileappender

自从dropwizard-core 0.7.1 移至 1.0.0 ,如下 -

/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java
/Users/xyz/GitHub/test-service/config/next/config.yml has an error:
  * when archivedLogFilenamePattern contains %i, maxFileSize must be specified

问题在于,即使我相应地对config.yml进行了更改并成功编译了项目。在尝试运行项目时,我遇到了同样的错误。

config.yml

server:
  applicationConnectors:
    - type: http
      port: 8180
  adminConnectors:
    - type: http
      port: 8181
  requestLog:
      appenders:
        - type: file-size-rolled
          currentLogFilename: /var/log/test-service/access.log
          threshold: ALL
          archive: true
          archivedLogFilenamePattern: /var/log/test-service/access.%i.log.gz
          maxFileSize: 50MB
          archivedFileCount: 10
          timeZone: IST
logging:
    level: INFO
    loggers:
      io.dropwizard: INFO
    appenders:
      - type: console
        threshold: ALL
        timeZone: IST
        target: stdout
      - type: file-size-rolled
        threshold: ALL
        currentLogFilename: /var/log/test-document-service/test-service.log
        threshold: ALL
        archive: true
        archivedLogFilenamePattern: /var/log/test-service/test-service-%i.log.gz
        maxFileSize: 50MB
        archivedFileCount: 5
        timeZone: IST

如果需要,file-size-rolled定义如下 -

@JsonTypeName("file-size-rolled")
public class SizeBasedRollingFileAppenderFactory extends FileAppenderFactory {
    public static final Size DEFAULT_MAX_FILE_SIZE_STR = Size.parse("50MB") ;

    @NotNull
    @JsonProperty
    Size maxFileSize = DEFAULT_MAX_FILE_SIZE_STR;

我在这里缺少与版本升级相关的更改?

1 个答案:

答案 0 :(得分:1)

由于dropwizard v0.9.0所有文件轮换策略都是使用类FileAppenderFactory完成的。因此,尝试将file-size-rolled替换为file,它应该可行。

另外,请确保您没有在类路径中粘贴任何0.7.1罐子。因为您没有收到以下错误消息,所以我猜他们已经到了。

  

无法解析类型ID' file-size-rolled'成为[简单的]子类型   type,class io.dropwizard.logging.AppenderFactory]:已知类型ids =   [AppenderFactory,console,file,syslog]"

Github上的Pull Request,如果你感兴趣的话。

编辑 - 同时又增加了SizeBasedRollingFileAppenderFactory中的更改后不再需要自定义类dropwizard的事实1.0.0中的申请。