从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进行了更改并成功地编译了项目,也是如此。在尝试运行项目时,仍然遇到相同的错误。
配置文件
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;
我在这里缺少与版本升级相关的哪些更改?
最佳答案
从dropwizard v0.9.0开始,所有文件轮换策略已使用类FileAppenderFactory
完成。因此,尝试用file-size-rolled
替换file
,它应该可以工作。
另外,请确保您没有在类路径中缠着任何0.7.1罐子。我猜他们在附近,因为您没有收到以下错误消息。
无法将类型ID“文件大小滚动”解析为[简单
类型,类io.dropwizard.logging.AppenderFactory]:已知类型ID =
[AppenderFactory,控制台,文件,系统日志]”
如果您有兴趣,请在Github上使用Pull Request。
编辑-还添加了以下事实:不再需要自定义类SizeBasedRollingFileAppenderFactory
,将更改发布在dropwizard
中的1.0.0
应用程序中。
关于java - 使用dropwizard时为config.yml指定“maxFileSize”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39342228/