首页 > 其他分享 >工程管理之二:日志初始化工具

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

时间:2023-09-14 14:37:52浏览次数:30  
标签:xml 初始化 lc 之二 static 日志 logback LOGGER configurator


现在公司工作中使用的日志工具是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的博客总结一下。

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

标签:xml,初始化,lc,之二,static,日志,logback,LOGGER,configurator
From: https://blog.51cto.com/u_6978506/7470088

相关文章

  • 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《支持JDK19虚拟线程的web框架》系列的中篇,前文咱们体验了有虚拟线程支持的web服务,经过测试,发现性能上它与其他两种常见web架构并无明显区别,既然如此,还有......
  • 算法回顾之二:直接插入排序
    算法回顾系列第二篇:直接插入排序算法-------------------------------------------直接插入排序基本原理:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含一个元素,无序表中包含有n-1个元素。排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当......
  • 设计模式回顾之二:外观/门面模式(Facade)
    设计模式回顾系列文章:主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。------------------------------------------------外观/门面模式(Facade)希望简化原有系统的使用方式,需要定义自己的接口。Facade模式简化了对所需子系统的使用过程,但是由于Facade并不......
  • controller方法入参出参加日志打印
    importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.serializer.SerializerFeature;importlombok.extern.slf4j.Slf4j;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.Around;importorg.aspectj.lang.annotation.Aspect......
  • [Microsoft Azure] Azure App Service 如何查看实时日志
    本文将介绍如何在AzureAppService中查看实时日志,以便实时监控应用程序的运行状况和性能。在处理AzureAppService上运行的应用程序时,查看实时日志对于监控应用程序性能和诊断问题非常重要。实时日志可以帮助我们快速发现并解决潜在问题。步骤1:登录到Azure门户首先,......
  • ubuntu22.04安装并初始化postgresql
    ubuntu22.04自带其实是有数据库的,通过以下命令可以查看当前数据库的版本信息aptshowpostgresql 如果要安装新的数据库,可以执行以下命令sudoaptupdatesudoaptinstallpostgresqlpostgresql-contribpostgresql-contrib或者说contrib包,包含一些不属于P......
  • HCI初始化流程
    HCI初始化流程1、HCI_Reset   初始化的第一步2、确定btchip支持的command、feature、地址等HCI_Read_Local_Version_InformationHCI_Read_Local_Supported_CommandsHCI_Read_Local_Supported_FeaturesHCI_Read_Local_Extended_FeaturesHCI_Read_BD_ADDR 3、设置接......
  • Spring容器跳过指定对象初始化扫
    在Spring容器中,如果你希望跳过指定对象的初始化扫描,你可以使用`@ComponentScan`注解的`excludeFilters`属性来实现。`excludeFilters`属性可以指定扫描时需要排除的类或接口。例如,假设你有一个名为`MyBean`的对象,你不希望它被Spring容器初始化扫描。你可以创建一个自定义的过滤器来......
  • 13-变量的申明-初始化-删除变量-垃圾回收机制
       需要先定义,做一个初始化,不然直接输入ddd会报错,没有被定义 此处a已经被删除了,3仍然在 通过垃圾回收机制把不用的对象进行回收,释放内存 ......
  • 10 分析类的初始化
    packageannotate;//分析类的初始化,取决于是否实例化对象?publicclassTest10{static{System.out.println("main被初始化");}publicstaticvoidmain(String[]args)throwsClassNotFoundException{//被初始化//Class.forNa......