Slf4j+logback实现JSON格式日志输出方式

目录
  • Slf4j+logback实现JSON格式日志输出
    • 依赖
  • logback 记录JSON日志

Slf4j+logback实现JSON格式日志输出

依赖

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.28</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.2.3</version>
</dependency>

logback.xml

<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers class="net.logstash.logback.composite.loggingevent.LoggingEventJsonProviders">
                <pattern>
                    <pattern>
                        {
                            "date":"%date{\"yyyy-MM-dd HH:mm:ss.SSS\",UTC}",
                            "level":"%level",
                            "msg":"%msg"
                        }
                    </pattern>
                </pattern>
            </providers>
            <charset>UTF-8</charset>
        </encoder>

输出:

{"date":"2019-09-17 08:29:20.879","level":"INFO","msg":"{\"tags\":{\"namespace\":\"service.MQTT.push\",,\"metric.correct\":true}}"}
{"date":"2019-09-17 08:30:20.784","level":"INFO","msg":"{\"tags\":{\"namespace\":\"service.MQTT.command\",\"metric.correct\":true}}"}
{"date":"2019-09-17 08:30:20.854","level":"INFO","msg":"{\"tags\":{\"namespace\":\"service.MQTT.push\",\"metric.correct\":true}}"}

logback 记录JSON日志

首先在你要记录的json日志中需要对某个类单独配置他的logger

如图

然后在你对应的类中调用 该logger

如图

然后在这里你需要记录的位置记录你需要的json 数据 这里的javaben toString方法已经重写了,返回的的字符串是json字符串

// 此处添加操作日志记录
		ES_LOG.info(new InOutLogModel(outBoundParamsModel.getScanCode(), outboundResult.getFormCode(),
				outBoundParamsModel.getMerchantId() + "", outBoundParamsModel.getSource(), "此处在逐单出库!",
				new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), outBoundParamsModel.getUserInfo())
						.toString());

最后在服务器上查看刚才所记录的日志如图

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决slf4j 和 logback-classic遇到的坑

    slf4j 和 logback-classic遇到的坑 以前一直不注意日志的打印,最近项目需求需要用日志记录用时性能,集成日志时遇到的问题记录下. 问题一:服务器启动时提示未找到slf4j的实现类 此时一定是没有在classpath中找到jar包,启动时会有相应的警告提示.需要三个包:slf4j-api(接口),logback-classic(最优实现),logback-core(核心).加入的位置可能存在两种,一种是tomcat需要,需要加在tomcat的lib下,还有一种是加在项目的clas

  • 详解slf4j+logback在java工程中的配置

    本文主要介绍一下slf4j+logback在java工程中的配置,面向的读者主要是已经对slf4j+logback有一定了解的同学,但是在文章开头也做了一些知识铺垫,下面咱们进入正题. 在介绍slf4j+logback配置之前,首先对日志组件logback进行介绍. (一)日志组件logback的介绍及配置使用方法 一.logback的介绍     Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classi

  • 详解Spring Boot 使用slf4j+logback记录日志配置

    在学校的时候使用Java进行开发,工作之后由于项目组采用.net进行开发就转到.net了.最近开始学习Java,对一些新东西进行学习.开始看SpringBoot,对遇到的问题进行记录. 学习新的东西最好从例子开始,只看文档太枯燥,但是文档还是必须要看的. spring boot主要的目的是: 为 Spring 的开发提供了更快更广泛的快速上手 使用默认方式实现快速开发 提供大多数项目所需的非功能特性,诸如:嵌入式服务器.安全.心跳检查.外部配置等 SLF4J是为各种loging APIs提供一个

  • SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

    关于logback日志的详解见这位仁兄的博客:Spring Boot-日志配置(超详细) 我在这就开门见山直接介绍我们项目日志的配置使用吧!~ 1.基本介绍 默认情况下,Spring Boot项目就会用Logback来记录日志,并用INFO级别输出到控制台.如下图: 实际开发中我们不需要直接添加logback日志依赖. 你会发现 spring-boot-starter 其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 lo

  • Slf4j+logback实现JSON格式日志输出方式

    目录 Slf4j+logback实现JSON格式日志输出 依赖 logback 记录JSON日志 Slf4j+logback实现JSON格式日志输出 依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</s

  • python中json格式数据输出的简单实现方法

    主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info["code"]=1 info["id"]=1900 info["name"]='张三' info["sex"]='男' list=[info,info,info] data={} data["code"]=1 data["id"]=190

  • php将从数据库中获得的数据转换成json格式并输出的方法

    如下所示: header('content-type:application/json;charset=utf8'); $results = array(); while ($row = mysql_fetch_assoc($result_query)) { $results[] = $row; } if($results){ echo json_encode($results); }else{ echo mysql_error(); } 将查询到的数组存放到一个新的数组中,然后返回json格式

  • 关于log4j2的异步日志输出方式

    目录 log4j2的异步日志输出方式 第一种实现异步方式AsyncAppender 第二种实现异步方式AsyncLogger log4j2异步注意事项 log4j2异步类型 小提示 log4j2的异步日志输出方式 使用log4j2的同步日志进行日志输出,日志输出语句与程序的业务逻辑语句将在同一个线程运行. 而使用异步日志进行输出时,日志输出语句与业务逻辑语句并不是在同一个线程中运行,而是有专门的线程用于进行日志输出操作,处理业务逻辑的主线程不用等待即可执行后续业务逻辑. Log4j2中的异步日志

  • Docker安装ELK并实现JSON格式日志分析的方法

    ELK是什么 ELK是elastic公司提供的一套完整的日志收集以及前端展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch.Logstash和Kibana. 其中Logstash负责对日志进行处理,如日志的过滤.日志的格式化等:ElasticSearch具有强大的文本搜索能力,因此作为日志的存储容器:而Kibana负责前端的展示. ELK搭建架构如下图: 加入了filebeat用于从不同的客户端收集日志,然后传递到Logstash统一处理. ELK的搭建 因为ELK是三个产

  • Springboot异常日志输出方式

    目录 lombok插件使用 统一异常处理 统一日志输出 配置日志级别↓ Logback日志↓ 配置logback日志↓ 安装idea彩色日志插件:grep-console 复制粘贴即可 lombok插件使用 引入依赖,在项目中使用Lombok可以减少很多重复代码的书写.比如说getter/setter/toString等方法的编写 ↓ <!--lombok用来简化实体类--> <dependency> <groupId>org.projectlombok</gro

  • Java 调整格式日志输出

    工欲善其事,必先利其器 很多程序员可能都忘了记录应用程序的行为是一件多么重要的事,当遇到多线程环境下高压力导致的并发bug时,你就能体会到记录log的重要性. 有的人很高兴的就在代码里加上了这么句: log.info("Happy and carefree logging"); 他可能都没有意识到应用程序的日志在维护,调优和故障识别中的重要性.我认为slf4j是最好的日志API,最主要是因为它支持一个很棒的模式注入的方式: log.debug("Found {} record

  • PHP记录和读取JSON格式日志文件

    我们有时需要记录用户或者后端的某个操作事件的运行情况,可以使用后端语言如PHP将操作结果记录到日志文件中,方便测试和查找问题.尤其是这些在后端运行的而前端不能直接看到运行结果的,那么就可以用日志文件记录下来,如果你经常跟一些接口开发如支付宝接口.微信卡券接口打交道的话,日志记录就必不可少了. 我们讲的PHP记录日志,就是将日志信息写入到一个日志文件中,区别于内存日志.写入日志的流程是:打开日志文件(如果不存在则新创建),然后将日志内容追加到日志文件的后面,最后关闭日志文件. 本文中,我们将日志内

  • gateway、webflux、reactor-netty请求日志输出方式

    目录 gateway.webflux.reactor-netty请求日志输出 场景 思路 解决方案 spring-webflux.gateway.springboot-start-web问题 Spring-webflux Spring-gateway gateway.webflux.reactor-netty请求日志输出 场景 在使用spring cloud gateway时想要输出请求日志,考虑到两种实现方案 方案一 官网中使用Reactor Netty Access Logs方案,配置“-D

  • filebeat收集json格式的tomcat日志详解

    目录 1.部署tomcat 1.1.部署tomcat 1.2.修改tomcat配置文件支持json格式日志输出 1.3.查看tomcat日志 2.配置filebeat收集tomcat日志 2.1.配置filebeat收集tomcat日志 2.2.使用ab压测工具生成1000行tomcat日志 2.3.查看es是否收集到日志 3.kibana关联es索引库进行数据查询 3.1.关联es索引库 3.2.查看收集来的tomcat日志 1.部署tomcat 公司中常用的web程序一般都是nginx和to

随机推荐