配置logback以遵循Java配置,即简单的Java Logback配置

Ada*_*ent 5 java logging logback slf4j log4j2

我只是不喜欢Logback的XML或Groovy配置,并且更喜欢用Java进行配置(这也是因为我将在初始化后的不同时间在运行时更改配置).

似乎进行Logback的Java配置的唯一方法是进行某种初始化,即劫持根appender或拥有自定义系统属性,告诉logback不使用默认配置(这对单元测试和部署来说相当烦人).

我更喜欢的是logback.xml:

<configuration javaConfig="com.myco.LogBackConfig" /> 
Run Code Online (Sandbox Code Playgroud)

其中LogbackConfig有一些已建立的静态方法可以进行logback调用,或者它只是重新实例化一个Java bean.

这是我想要一个默认的类路径资源,它将告诉logback使用Java而不是groovy/xml.基本上我想要一些类似于Java ServiceLoader的logback配置.

也许有一种方法可以在Logback中做到这一点,我错过了?

更新: 显然Log4j2(新的log4j)完全符合我的要求,与Java ServiceLoader非常相似.

Cek*_*eki 3

该功能刚刚合并到 logback 的源代码中。请参阅https://github.com/qos-ch/logback/pull/181