工程管理之二:日志初始化工具

本文介绍了如何使用slf4j+logback进行日志系统初始化,包括配置logback.xml文件并加载其内容,以及如何在代码中使用logger方法输出不同级别的日志信息。此外,还提及了如何通过commons-configuration库查找配置文件,并使用logback内部集成的JoranConfigurator类进行配置加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在公司工作中使用的日志工具是slf4j+logback。

初始化工具类实现如下:

public class LogUtil {
	private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(LogUtil.class);
	public static final String __CONF_DIR__ = "conf";
	
	public static void loadLogbackConfiguration(String confDir) {
        try {
            LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
            JoranConfigurator configurator = new JoranConfigurator();
            configurator.setContext(lc);
            lc.reset();
            File file = new File(confDir + "/logback.xml");
            if (file.exists()) {
                configurator.doConfigure(file);
                if (LOGGER.isInfoEnabled()) {
                    LOGGER.info("loading logback conf from:{}", file.getAbsolutePath());
                }
            } else {
                URL url = org.apache.commons.configuration.ConfigurationUtils.locate("logback.xml");
                configurator.doConfigure(url);
                if (LOGGER.isInfoEnabled()) {
                    LOGGER.info("loading logback conf from:{}", url);
                }
            }
            StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
        } catch (JoranException e) {
            LOGGER.error("failed to load logback config from:" + confDir, e);
        }
    }
	
	public static void main(String[] args){
		LogUtil.loadLogbackConfiguration(LogUtil.__CONF_DIR__);
		LOGGER.debug("debug...");
		LOGGER.error("error...");
	}
}

基本过程就是找到并加载logback.xml文件,初始化日志系统。然后就可以使用logger.debug或者logger.error等方法输出日志,其中用到了commons-configuration的类库查找logback.xml文件。

加载logback.xml的JoranConfigurator类是logback内部集成的配置工具。

另外,关于logback的配置及使用我会单独写一篇关于logback的博客总结一下。

希望对看到的人有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值