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

物业网站建设武汉网站设计公司

物业网站建设,武汉网站设计公司,廊坊网站推广排名,三网合一网站建设合同1 日志级别 Spring Boot Actuator包括在运行时查看和配置应用程序日志级别的功能。您可以查看整个列表,也可以查看单个记录器的配置,该配置由显式配置的日志级别和日志框架给出的有效日志级别组成。这些级别可以是: TRACEDEBUGINFOWARNERRORFATALOFFnu…

1 日志级别

Spring Boot Actuator包括在运行时查看和配置应用程序日志级别的功能。您可以查看整个列表,也可以查看单个记录器的配置,该配置由显式配置的日志级别和日志框架给出的有效日志级别组成。这些级别可以是:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL
  • OFF
  • null

null表示没有显式配置。

2 logger接口

2.1 列表

GET /loggers

样例:
GET http://localhost:8087/actuator/loggers
Authorization: Basic dGVzdDpCQUtGWCQzbA==

2.2 详情

GET /loggers/{name:.*}

样例:
GET http://localhost:8087/actuator/loggers/sample.actuator.SampleActuatorApplication
Authorization: Basic dGVzdDpCQUtGWCQzbA==

2.3 修改level

POST /loggers/{name:.*}

样例:
POST http://localhost:8087/actuator/loggers/sample.actuator.SampleActuatorApplication
Authorization: Basic dGVzdDpCQUtGWCQzbA==
Content-Type: application/json

{
“configuredLevel”: “DEBUG”
}

3 分析

接口位于spring boot actuator 的LoggersMvcEndpoint
LoggersMvcEndpoint->LoggersEndpoint->LoggingSystem

3.1 LoggingSystem

LoggingSystem是接口,通过实现类具体处理
在这里插入图片描述
LoggingSystem实现类是通过LoggingSystem.get(get(ClassLoader classLoader)获得的

    private static final Map<String, String> SYSTEMS;static {// LinkedHashMap 保证顺序性,logback、log4j、javalogging的顺序,加载到对应的类,就返回对应的LoggingSystem的实现类Map<String, String> systems = new LinkedHashMap<String, String>();systems.put("ch.qos.logback.core.Appender", "org.springframework.boot.logging.logback.LogbackLoggingSystem");systems.put("org.apache.logging.log4j.core.impl.Log4jContextFactory","org.springframework.boot.logging.log4j2.Log4J2LoggingSystem");systems.put("java.util.logging.LogManager", "org.springframework.boot.logging.java.JavaLoggingSystem");SYSTEMS = Collections.unmodifiableMap(systems);}public static LoggingSystem get(ClassLoader classLoader) {String loggingSystem = System.getProperty(SYSTEM_PROPERTY);if (StringUtils.hasLength(loggingSystem)) {if (NONE.equals(loggingSystem)) {return new NoOpLoggingSystem();}return get(classLoader, loggingSystem);}for (Map.Entry<String, String> entry : SYSTEMS.entrySet()) {if (ClassUtils.isPresent(entry.getKey(), classLoader)) {return get(classLoader, entry.getValue());}}throw new IllegalStateException("No suitable logging system located");}private static LoggingSystem get(ClassLoader classLoader, String loggingSystemClass) {try {Class<?> systemClass = ClassUtils.forName(loggingSystemClass, classLoader);return (LoggingSystem) systemClass.getConstructor(ClassLoader.class).newInstance(classLoader);}catch (Exception ex) {throw new IllegalStateException(ex);}}

LoggingSystem.get(get(ClassLoader classLoader)是通过LoggingApplicationListener调用的

3.2 LoggingApplicationListener

LoggingApplicationListener类图如下
在这里插入图片描述
在spring.factories发现LoggingApplicationListener配置,通过SpringFactoryLoader加载
在这里插入图片描述
初始化流程
在这里插入图片描述
注册到spring
在这里插入图片描述
调用流程
在这里插入图片描述

4 问题

4.1 安全

http接口可能会暴漏出去,存在安全问题。可以参照https://blog.csdn.net/weixin_43511928/article/details/129131251

  • 指定management.port,独立于业务端口
  • security.user.name、security.user.password配置账号密码(密码要使用强密码)

4.2 缺少reset

日志级别重置,恢复现场。

  • 可以在setLogLevel记录被修改的名字、旧的日志级别
  • 提供/logger/reset接口,setLogLevel恢复列表

4.3 只支持spring boot

4.3.1 参照对应日志框架LoggingSystem setLogLevel实现

LogbackLoggingSystem

	@Overridepublic void setLogLevel(String loggerName, LogLevel level) {ch.qos.logback.classic.Logger logger = getLogger(loggerName);if (logger != null) {logger.setLevel(LEVELS.convertSystemToNative(level));}}

Log4J2LoggingSystem

	@Overridepublic void setLogLevel(String loggerName, LogLevel logLevel) {Level level = LEVELS.convertSystemToNative(logLevel);LoggerConfig loggerConfig = getLoggerConfig(loggerName);if (loggerConfig == null) {loggerConfig = new LoggerConfig(loggerName, level, true);getLoggerContext().getConfiguration().addLogger(loggerName, loggerConfig);}else {loggerConfig.setLevel(level);}getLoggerContext().updateLoggers();}

4.3.2 使用arthas修改

参照 https://arthas.aliyun.com/doc/logger.html

http://www.fp688.cn/news/165023.html

相关文章:

  • 网站建设需要实现哪些目标优化seo公司哪家好
  • 佛山网站搭建公司网络推广关键词优化公司
  • 怎么搭建自己的网站卖货企业网络营销推广方法
  • 网站开发类毕业论文范例株洲seo
  • 网站在布局专业黑帽seo
  • 滨湖网站制作点点站长工具
  • 昭通市有做网站的吗排名优化seo公司
  • b2c网站结构分析安卓aso优化
  • 河北网站建设公司排名地推
  • 山东住房和城乡建设部网站首页石家庄整站优化技术
  • 科技开发公司长沙seo外包
  • 太原市建设局网站页面seo是什么意思
  • 男子替人做赌博网站百度帐号申请注册
  • 徐州网站建设托管百度热搜榜历史
  • 网站开发典型b站推广软件
  • 国外做机器的好的网站域名信息查询网站
  • 微微网站建设代码优化
  • 门户网网站seo怎么做站长工具中文
  • 通用网址通用网站查询网上培训课程平台
  • 网站开发php和ui谷歌浏览器 安卓下载2023版
  • 网站内容不显示不出来品牌推广策略分析
  • 做网站好的网站建设公司排名品牌网络推广
  • 百度企业查系统优化大师官方下载
  • 网站怎么做竞价百度 站长工具
  • 淘宝网店代运营哪家好整站seo优化
  • 用illustrator做网站点击器
  • wordpress主题带支付电商seo是指
  • 迁安建设局网站百度指数的数据来源
  • 江西做企业网站的公司百度百家号注册
  • 中山市建设局网站窗口电话推广营销app