您的位置:首页 > 房产 > 建筑 > 今天长沙疫情最新情况_沈阳城乡建设工程信息网_无线新闻台直播app下载_百度百度一下一下

今天长沙疫情最新情况_沈阳城乡建设工程信息网_无线新闻台直播app下载_百度百度一下一下

2025/2/26 4:01:19 来源:https://blog.csdn.net/weixin_44665318/article/details/143570963  浏览:    关键词:今天长沙疫情最新情况_沈阳城乡建设工程信息网_无线新闻台直播app下载_百度百度一下一下
今天长沙疫情最新情况_沈阳城乡建设工程信息网_无线新闻台直播app下载_百度百度一下一下

springboot统计的json数据

  • 1. 配置 Logback 输出 JSON 格式日志
    • 1.1添加依赖:
    • 1.2配置 Logback 输出日志:
  • 2. 使用 LinkedHashMap 日志数据
  • 3. 将日志推送到 SLS
  • 4. 在阿里云 SLS 中查看日志
  • 5.补充:关于 JSON 格式输出
  • 5.补充:关于 JSON 格式输出

要将 Spring Boot 后端的数据(如你提供的 LinkedHashMap<String, Object> map)采集到 SLS(Simple Log Service)日志 中,并将其以 JSON 格式 存储,配置适当的日志记录方式,并将这些日志数据按照特定格式输出。
一般情况下,我们使用 Logback 作为 Spring Boot 项目的日志框架

1. 配置 Logback 输出 JSON 格式日志

1.1添加依赖:

在 pom.xml 中添加 Logback 和 Logstash-Logback-Encoder 依赖:

<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>7.0</version> <!-- 根据需要选择适当版本 -->
</dependency>

1.2配置 Logback 输出日志:

在 src/main/resources/logback-spring.xml(或者 logback.xml)中配置一个 RollingFileAppender 或者 SocketAppender 来将日志输出为 JSON 格式。

例如,使用 LogstashEncoder 输出 JSON 格式日志到文件:

<appender name="SLS_ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>./logs/access/%d{yyyy-MM-dd}/%i.log</FileNamePattern><maxHistory>90</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 使用 LogstashEncoder 输出 JSON 格式日志 --><encoder class="net.logstash.logback.encoder.LogstashEncoder"><charset>UTF-8</charset></encoder></appender><!-- 为 AuthController 创建独立的 logger --><logger name="com.xxx.xxx.controller.xxxr" level="INFO" additivity="false"><appender-ref ref="SLS_ACCESS"/></logger>

2. 使用 LinkedHashMap 日志数据

实际需要统计的sls日志数据

private static final Logger logger = LoggerFactory.getLogger(AccessLogService.class);public void logAccessData(AccessLogEntity accessLogEntity) {LinkedHashMap<String, Object> map = new LinkedHashMap<>();map.put("appCode", accessLogEntity.getAppCode());map.put("userId", accessLogEntity.getUserId());map.put("userRole", accessLogEntity.getUserRole());map.put("areaCode", accessLogEntity.getAreaCode());map.put("actionType", accessLogEntity.getActionType());// 将日志数据转换成 JSON 格式并记录JSONObject jsonObject = new JSONObject(map);logger.info(jsonObject.toJSONString());}

3. 将日志推送到 SLS

需要将日志从应用程序发送到阿里云的 SLS 服务。假设你已经配置了 Logback或者Logtail 将日志输出到 SLS,你的日志就会以 JSON 格式发送。

4. 在阿里云 SLS 中查看日志

你可以登录阿里云控制台,进入日志服务(SLS)查看你发送的日志。每条日志记录应该是一个 JSON 格式的对象,类似于:

message: {"appCode": "yourAppCode","userId": "12345","userRole": "admin","areaCode": "1001","actionType": "login"
}

需要在查询分析属性—开启字段索引—选择json格式
在这里插入图片描述
在这里插入图片描述

5.补充:关于 JSON 格式输出

如果你想要更定制化的 JSON 格式输出,LogstashEncoder 默认会将日志输出为标准的 JSON 格式。如果你需要对某些字段进行特定格式化或自定义,可以扩展 LogstashEncoder,或者在 Logback 配置中使用自定义的 PatternLayoutEncoder。

5.补充:关于 JSON 格式输出

1.使用 Logback 配合 Logstash-Logback-Encoder 输出 JSON 格式日志。
2.将日志配置为通过 SLS 推送到阿里云日志服务。
3.使用 LinkedHashMap 记录日志内容,并通过 SLF4J 打印出来。

上一篇:springboot指定类日志记录特定文件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com