Переопределить типизированный безопасный логгер конфигурации для использования в моем входе - PullRequest
1 голос
/ 21 февраля 2020

У меня есть проблема в моей конфигурации типов безопасности + logback config + уточненные типы + чистая конфигурация. Когда моя конфигурация не проверена, я получаю необработанное исключение без использования форматирования приложения обратного входа в систему, например

, мой обратный вызов выглядит например, Как я могу решить мою проблему?

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <if condition='property("ENVIRONMENT").equalsIgnoreCase("production")'>
        <then>
            <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <timestamp/>
                    <version/>
                    <mdc/>
                    <pattern>
                        <pattern>
                            {
                            "logger": "%logger",
                            "level": "%level",
                            "severity": "%level",
                            "thread": "%thread",
                            "application": "argos-scheduler",
                            "environment": "${ENVIRONMENT}",
                            "message": "%.-5000message"
                            }
                        </pattern>
                    </pattern>
                    <stackTrace>
                        <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
                            <maxLength>2048</maxLength>
                            <exclude>sun\.reflect\..*\.invoke.*</exclude>
                            <exclude>net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
                        </throwableConverter>
                    </stackTrace>
                </providers>
            </encoder>
        </then>
        <else>
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg - mdc[ %X ]%n%ex%n</pattern>
            </encoder>
        </else>
    </if>
</appender>

<appender name="ASYNC_STDOUT" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="STDOUT"/>
</appender>

<root level="INFO">
    <appender-ref ref="ASYNC_STDOUT"/>
</root>

, и когда у меня есть недопустимая конфигурация, появляется неотформатированная ошибка типа

[info] 18:39:29.220 INFO  [main] kamon.prometheus.PrometheusReporter - Started the embedded 
HTTP server on http://0.0.0.0:9099 - mdc[  ]
[info] 18:39:29.548 INFO  [Prometheus Reporter] kamon.prometheus.PrometheusReporter - 
Started the embedded HTTP server on http://0.0.0.0:9099 - mdc[  ]
[error] pureconfig.error.ConfigReaderException: Cannot convert configuration to a 
com.scheduler.SchedulerConfig. Failures are:
[error]   at 'postgres.max-pool-size':
[error]     - (jar:file:/tmp/sbt_9a1143b0/job-8/target/e4302064/14e353f3/scheduler_2.12- 
1.0.jar!/reference.conf:63) Expected type NUMBER. Found STRING instead.
...