如何在彈簧引導應用程序中以編程方式配置日誌?Spring Boot編程式日誌配置
使用xml或properties文件不夠靈活,無法滿足我的需求。
更新:我要實現的是這樣的:
@Value("${logging.level.root}")
private String loggingLevelRoot;
@Value("${logging.level.myApp}")
private String loggingLevelMyApp;
@Value("${logging.file}")
private boolean fileAppenderEnabled;
....
setLevel(Logger.ROOT_LOGGER_NAME, Level.toLevel(loggingLevelRoot)));
setLevel("com.myapp", Level.toLevel(loggingLevelMyApp)));
setLevel("org.springframework", Level.WARN);
setLevel("org.apache.coyote", Level.INFO);
setLevel("org.apache.catalina", Level.INFO);
setLevel("org.apache.catalina.startup.DigesterFactory", Level.ERROR);
setLevel("org.apache.catalina.util.LifecycleMBeanBase", Level.ERROR);
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logger.addAppender(createConsoleAppender());
if (fileAppenderEnabled) {
logger.addAppender(createFileAppender());
}
所有我每環境有是:
- logging.level.root = [INFO,DEBUG,..]
- logging.level.myApp = [INFO,DEBUG,..]
- logging.file = [true |假]
沒有重複的XML,Groovy和其他格式我真的不想處理。
在這一天結束時,這實際上是爲了實現與Spring JavaConfig爲bean所做的日誌記錄相同的靈活性。 XML或其他文件格式簡直太靜態,需要太多的重複,並且與應用程序的其餘配置不夠好地集成。
爲什麼日誌記錄的配置與其他任何bean或服務不同?它沒有任何意義。
使用xml不夠靈活嗎?如果您使用Logback,則可以使用Groovy配置logback。 –
@ M.Deinum不,你不能; Spring Boot(實際上,我認爲Spring Autoconfig)踩在Groovy配置上。 – chrylis
我還需要爲每個環境配置不同的配置,使用不同的appender類型......所以不,XML不會削減它。 –