测试类中如何加载logback的配置文件logback.xml
关于logback,我知道logback.xml放在src根目录下可以默认直接加载
如果我在项目中scr新建一个包com.test.resources,然后把logback.xml放在这个包下面。
那么,LogbackDemo.java测试类如何加载这个配置文件?
// LoggerFactory.getLogger()方法的参数使用的是当前类的class private static final Logger logger = LoggerFactory.getLogger(LogDemo.class); public static void main(String[] args) { LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory(); JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(lc); lc.reset(); try { configurator.doConfigure("src/com/bag/resources/logback-log.xml"); } catch (JoranException e) { e.printStackTrace(); } StatusPrinter.printInCaseOfErrorsOrWarnings(lc); System.out.println("==================="); logger.debug("Hello {}","debug message"); } }
但是,web项目里如何加载配置文件呢?
配置文件放在另一个比如 etc 或 properties 目录,但在Eclipse中将其设置为source目录即可。
如果是发布,可以单独打成一个jar包,也可以直接合并到class的jar中打包;或者为了便于修改,放到系统CLASSPATH指定的某个位置上。 那么要自己写代码去初始化Logger(借助Application启动事件,或Servlet启动之类的方式),或者借助Spring来替你完成。
不过其实没必要,类似于log.xml这样的配置,是值得让它生存在根目录的。