【问题标题】:Dropwizard Custom log file via Logback通过 Logback 的 Dropwizard 自定义日志文件
【发布时间】:2014-02-21 19:59:23
【问题描述】:

查看 dropwizard 的源代码,我可以看到有自定义胶水代码来读取 .yml 文件并设置日志记录。

我想要自己的自定义日志文件,但我想使用 dropwizard 中已经存在的旋转和压缩。

有没有办法,除了克隆代码来做到这一点?

https://github.com/dropwizard/dropwizard/tree/master/dropwizard-logging/src/main/java/io/dropwizard/logging

具体来说,它看起来需要创建我自己的继承自 io.dropwizard.FileAppenderFactory 的类

还是我从错误的角度解决了这个问题?

【问题讨论】:

    标签: java logging logback dropwizard


    【解决方案1】:

    有一种方法,但是如果您使用的是 lib,则需要更改 dropwizard 源并重新编译它。在您正在扩展的 dropwizard 的 Application 类中,有一个像 Blow 这样的静态块,只需注释这些行并使用您的自己的logback.xml文件。真是让人头疼....

    static {
        // make sure spinning up Hibernate Validator doesn't yell at us
        LoggingFactory.bootstrap();
    }
    

    【讨论】:

      【解决方案2】:

      如果我理解正确,您只想指定要正确记录的文件吗?

      在这种情况下,您只需在您的 configuration.yml 文件中添加一个文件日志配置:

      logging:
      
        # The default level of all loggers. Can be OFF, ERROR, WARN, INFO,
        # DEBUG, TRACE, or ALL.
        level: DEBUG
      
        appenders:
          - type: file
            currentLogFilename: ./path/to/logfile.log
            archivedLogFilenamePattern: ./path/to/logfile-%d.log.gz
            archivedFileCount: 5
            timeZone: UTC
      

      将“/path/to/logfile”替换为您希望文件日志所在的路径。根据documentation,并不是说在轮换时 %d 将被轮换日期替换。

      同时检查文件记录器的不同configuration options

      【讨论】:

      • 注意:dropwizard 0.6 不支持在配置文件中使用 'appenders',但 0.7 支持。
      • 我可以将现有的 logback.xml 文件与 yml 文件一起使用吗?
      猜你喜欢
      • 1970-01-01
      • 2020-01-19
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      相关资源
      最近更新 更多