当前位置: 首页 > news >正文

Spring boot logback日志框架加载初始化源码

##LoggingApplicationListener监听

@Overridepublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof ApplicationStartingEvent) {onApplicationStartingEvent((ApplicationStartingEvent) event);}else if (event instanceof ApplicationEnvironmentPreparedEvent) {onApplicationEnvironmentPreparedEvent((ApplicationEnvironmentPreparedEvent) event);}else if (event instanceof ApplicationPreparedEvent) {onApplicationPreparedEvent((ApplicationPreparedEvent) event);}else if (event instanceof ContextClosedEvent&& ((ContextClosedEvent) event).getApplicationContext().getParent() == null) {onContextClosedEvent();}else if (event instanceof ApplicationFailedEvent) {onApplicationFailedEvent();}}

##初始化

protected void initialize(ConfigurableEnvironment environment, ClassLoader classLoader) {new LoggingSystemProperties(environment).apply();this.logFile = LogFile.get(environment);if (this.logFile != null) {this.logFile.applyToSystemProperties();}this.loggerGroups = new LoggerGroups(DEFAULT_GROUP_LOGGERS);initializeEarlyLoggingLevel(environment);initializeSystem(environment, this.loggingSystem, this.logFile);initializeFinalLoggingLevels(environment, this.loggingSystem);registerShutdownHookIfNecessary(environment, this.loggingSystem);}

##Spring boot 集成logback日志框架 

org.springframework.boot.logging.logback.LogbackLoggingSystem

this.loggingSystem = LoggingSystem.get(event.getSpringApplication().getClassLoader());

##String logConfig = environment.getProperty(CONFIG_PROPERTY);//取出配置文件log xml配置

##解析xml文档

##实例化xml配置节点日志对象ch.qos.logback.core.rolling.RollingFileAppender

##日志对象存到这个InterpretationContext上下文

##添加到appenderList集合容器,循环调用输出日志到文件或控制台

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • DVWA-IDS测试(特殊版本)
  • 前端学习笔记-JS篇-04
  • Redis中缓存穿透、缓存击穿、缓存雪崩的详解
  • 糟糕界面集锦-控件篇09
  • docker基本管理和应用
  • 记事本打不开(保姆级教程)
  • yolov8/yolov10 MLU370 实现推理/单多卡训练!
  • 【HBZ分享】Mysql索引的失效场景 以及 创建索引失败报错的原因
  • Spring IOC 小演示
  • 【区块链+乡村振兴】阳光农安农产品质量安全监管与服务平台 | FISCO BCOS应用案例
  • Fal.ai Flux 1-Pro/Viva.ai/哩布哩布AI:AI绘图部分免费工具+原图提示词Prompt
  • 慢SQL优化
  • Vue3+Ts封装类似el-drawer的抽屉组件
  • 【C语言篇】编译和链接以及预处理介绍(下篇)
  • springboot controller参数中如何传递字符串数组
  • docker python 配置
  • java多线程
  • Java反射-动态类加载和重新加载
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • spring + angular 实现导出excel
  • vue:响应原理
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微服务核心架构梳理
  • 我建了一个叫Hello World的项目
  • 优秀架构师必须掌握的架构思维
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 《天龙八部3D》Unity技术方案揭秘
  • ionic异常记录
  • 移动端高清、多屏适配方案
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (02)Unity使用在线AI大模型(调用Python)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (三)终结任务
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Sql Server 保留几位小数的两种做法
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Core WebAPI中封装Swagger配置
  • .net core 依赖注入的基本用发
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 程序发生了一个不可捕获的异常
  • .NET中的十进制浮点类型,徐汇区网站设计
  • //TODO 注释的作用
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ C++ ] STL---仿函数与priority_queue