をプログラムで設定するにはどうすればよいですか?春の起動アプリケーションでは?スプリングブートプログラムによるロギング設定
xmlファイルまたはプロパティファイルを使用すると、私のニーズに十分柔軟ではありません。
アップデート:私はこのような何かを達成したい:
@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 | false]
私は本当に対処したくないXML、Groovyおよび他のフォーマットの重複はありません。
これは本当に、Spring JavaConfigがBeanに対して行ったのと同じ柔軟性をログに記録することです。 XMLやその他のファイル形式は静的すぎて重すぎる重複を必要とし、アプリケーションの残りの構成と十分に統合されません。
他のどのBeanやサービスとも異なるロギングを設定する必要があるのはなぜですか?それは意味をなさない。
xmlを使用すると十分な柔軟性が得られません。 Logbackを使用する場合、Groovyを使用してログバックを設定できます。 –
@ M.Deinumいいえ、あなたはできません。 Spring Boot(実際には、Spring AutoconfigはGroovyの設定で暴走します)。 – chrylis
私はまた、環境ごとに異なるアペンダーの種類を持つ別の設定が必要です...いいえ、XMLはそれをカットしません。 –