如何在Spring启动应用程序中以编程方式配置日志记录?
使用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 | 假]
没有重复的XML,Groovy和其他格式我真的不想处理.
在一天结束时,这实际上是为了实现与Spring JavaConfig对bean一样的日志记录灵活性.XML或其他文件格式过于静态,需要过多的重复,并且与应用程序的其余配置集成得不够好.
为什么日志记录的配置不同于任何其他bean或服务?这没有道理.