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

sls日志服务采集json格式日志

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指定类日志记录特定文件


http://www.mrgr.cn/news/67009.html

相关文章:

  • 练习LabVIEW第四十二题
  • Python常用脚本集锦
  • Django学习-项目部署
  • Ollama AI 框架缺陷可能导致 DoS、模型盗窃和中毒
  • Java基础-Java中的常用类(上)
  • Golang | Leetcode Golang题解之第541题反转字符串II
  • mysql的触发器
  • 文件操作:Xml转Excel
  • es自动补全(仅供自己参考)
  • ASRPRO 日历2
  • Python 装饰器 (面向切面编程,语法糖,AOP)
  • PySpark 本地开发环境搭建与实践
  • 对自动化测试的一些展望与理解
  • Linux(CentOS)安装 MySQL
  • 伊莱亚斯 M. 斯坦恩(Elias M. Stein)《复分析》与《实分析》教材
  • APP 后台广告位配置的关键要素与策略
  • 浏览器是如何渲染页面的? - 2024最新版前端秋招面试短期突击面试题
  • 编程语言越来越多,为什么C/C++还没有被现在的时代淘汰呢?
  • 智合同丨买卖合同纠纷中,起诉关联公司需要准备些什么?
  • JVM 内存结构中哪些区域可能发生 OOM
  • 红队-linux基础(1)
  • linux利用环境变量提权以及如何防范
  • 基本开关电源电路分析
  • Axure设计之三级联动选择器教程(中继器)
  • 大家知道输电线路微风振动在线监测有哪些先进技术?
  • docker 入门教程