《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
ApiBoot Logging 核心依赖是:
接下来是application.yml文件:
#配置项目名称
spring:
application:
name: ElegantDemo
#配置端口
server:
port: 8067
#配置ApiBoot Logging 日志组件
api:
boot:
logging:
show-console-log: true
#实现美化打印请求日志
format-console-log-json: true
这里有一点需要提醒下, 里面的配置项目名称和端口是有必要的,因为ApiBoot 在监控每次请求的数据输出时,里面包括了项目名称和端口。
然后是在启动类上加上注解 @EnableLoggingClient :
可以看到这个注解,Client ,客户端,没错,这个其实也有对应的admin端进行日志上报,但是目前实现对接口请求的日志监控打印,我们只需要使用客户端组件即可。
接下来,我们来简单编写几个接口,作为测试,LoggingApiTestController.java:
import com.demo.elegant.pojo.Cat;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
-
@Author : JCccc
-
@CreateTime : 2019/11/25
-
@Description :
**/
@RestController
public class LoggingApiTestController {
@GetMapping(“/testGet1”)
public String testGet1(@RequestParam(“name”) String name, @RequestParam(“age”) Integer age) {
return “testGet1: name is “+ name+” and age is :”+age;
}
@GetMapping(“/testGet2”)
public String testGet2(@RequestParam Map paramMap) {
return “testGet2: name is “+ paramMap.get(“name”)+” and age is :”+paramMap.get(“age”);
}
@PostMapping(“/testPost1”)
public String testPost1(@RequestBody Cat cat) {
return “testPost1: name is “+ cat.getName()+” and age is :”+cat.getAge();
}
@PostMapping(“/testPost2”)
public String testPost2(@RequestBody Map paramMap) {
return “testPost2: name is “+ paramMap.get(“name”)+” and age is :”+paramMap.get(“age”);
}
}
这里其中一个post方法用到了实体类接收参数,顺便也贴一下 Cat.java:
PS: 可以参考我这篇,了解各种springboot拿参方式(https://blog.csdn.net/qq_35387940/article/details/100151992)
import lombok.Data;
/**
-
@Author : JCccc
-
@CreateTime : 2019/11/25
-
@Description :
**/
@Data
public class Cat {
private String name;
private Integer age;
}
ok,我们用postman先来调用 ‘/testGet1’ 接口:
可以看到控制台:
红色框里面正是这次请求的所有数据,都成功监控打印了。
蓝色框是啥呢,就是前面说的admin组件,我们这里不需要用到admin,所以会有提示说这个日志监控报告没有找到对应的admin服务,没有影响,直接无视就好。
其余接口就不一一调用了,效果都是一样的。
如果觉得这个日志打印下来占行数太多了,那么可以在application.yml里面,将json格式化给设置为false,默认不设置也是false:
设置格式化为false:
到这里,其实已经完了,但是我个人有点强迫症,我不想看到那个warn日志,所以稍微操作一哈。
那么我这里简单使用下logback日志框架,顺便对日志文件输出都进行统一性管理:
新建logback.xml,直接放到resources文件夹下(一般的项目想整合logback框架,基本保留这份xml就够用了,拿来即用):
<?xml version="1.0" encoding="UTF-8"?>1-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n
GBK
L O G P A T H / {LOG_PATH}/ LOGPATH/{APPDIR}/log_error.log
L O G P A T H / {LOG_PATH}/ LOGPATH/{APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log
500MB
true
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
utf-8
error
ACCEPT
DENY
L O G P A T H / {LOG_PATH}/ LOGPATH/{APPDIR}/log_warn.log
L O G P A T H / {LOG_PATH}/ LOGPATH/{APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
2MB
true
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
utf-8
warn
ACCEPT
DENY
L O G P A T H / {LOG_PATH}/ LOGPATH/{APPDIR}/log_info.log
L O G P A T H / {LOG_PATH}/ LOGPATH/{APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log
2MB
true
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
utf-8
info
ACCEPT
DENY
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
一线互联网大厂Java核心面试题库
正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
dbc.audit" level=“OFF”/>–>
一线互联网大厂Java核心面试题库
[外链图片转存中…(img-4nhvIl0t-1714754606250)]
正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!