JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之日志技术
- JUL:这是JavaSE平台提供的官方日志框架,也被称为JUL。配置相对简单,但不够灵活,性能较差。
- Log4j:一个流行的日志框架,提供了灵活的配置选项,支持多种输出目标。
- Logback:基于Log4j升级而来,提供了更多的功能和配置选项,性能由于Log4j。
- Slf4j:(Simple Logging Facade for Java)简单日志门面,提供了一套日志操作的标准接口及抽象类,允许应用程序使用不同的底层日志框架。
1,Logback入门
1). 准备工作:引入logback的依赖(springboot中无需引入,在springboot中已经传递了此依赖)
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>1.4.11</version>
- </dependency>
复制代码 2). 引入配置文件 logback.xml (资料中已经提供,拷贝进来,放在 src/main/resources 目录下; 或者直接AI生成)
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <!-- 控制台输出 -->
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%logger显示日志记录器的名称, %msg表示日志消息,%n表示换行符 -->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
- </encoder>
- </appender>
-
- <!-- 系统文件输出 -->
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <!-- 日志文件输出的文件名, %i表示序号 -->
- <FileNamePattern>D:/zidiu-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
- <!-- 最多保留的历史日志文件数量 -->
- <MaxHistory>30</MaxHistory>
- <!-- 最大文件大小,超过这个大小会触发滚动到新文件,默认为 10MB -->
- <maxFileSize>10MB</maxFileSize>
- </rollingPolicy>
-
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%msg表示日志消息,%n表示换行符 -->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
- </encoder>
- </appender>
-
- <!-- 日志输出级别 -->
- <root level="ALL">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="FILE" />
- </root>
- </configuration>
复制代码 Logback日志级别
日志级别指的是日志信息的类型,日志都会分级别,常见的日志级别如下(优先级由低到高):
日志级别 | 说明 | 记录方式 | trace | 追踪,记录程序运行轨迹 【使用很少】 | log.trace("...") | debug | 调试,记录程序调试过程中的信息,实际应用中一般将其视为最低级别 【使用较多】 | log.debug("...") | info | 记录一般信息,描述程序运行的关键事件,如:网络连接、io操作 【使用较多】 | log.info("...") | warn | 警告信息,记录潜在有害的情况 【使用较多】 | log.warn("...") | error | 错误信息 【使用较多】 | log.error("...") | 可以在配置文件logback.xml中,灵活的控制输出那些类型的日志。(大于等于配置的日志级别的日志才会输出)
- <!-- 日志输出级别 -->
- <root level="info">
- <!--输出到控制台-->
- <appender-ref ref="STDOUT" />
- <!--输出到文件-->
- <appender-ref ref="FILE" />
- </root>
复制代码 日志开关配置 (开启日志(ALL),取消日志(OFF))
- <!-- 日志输出级别 -->
- <root level="ALL">
- <!--输出到控制台-->
- <appender-ref ref="STDOUT" />
- <!--输出到文件-->
- <appender-ref ref="FILE" />
- </root>
复制代码 案例日志记录
- /**
- * 部门管理控制器
- */
- @Slf4j
- @RequestMapping("/depts")
- @RestController
- public class DeptController {
-
- @Autowired
- private DeptService deptService;
-
- /**
- * 查询部门列表
- */
- //@RequestMapping(value = "/depts", method = RequestMethod.GET)
- @GetMapping
- public Result list(){
- //System.out.println("查询部门列表");
- log.info("查询部门列表");
- List<Dept> deptList = deptService.findAll();
- return Result.success(deptList);
- }
-
- /**
- * 根据id删除部门 - delete http://localhost:8080/depts?id=1
- */
- @DeleteMapping
- public Result delete(Integer id){
- //System.out.println("根据id删除部门, id=" + id);
- log.info("根据id删除部门, id: {}" , id);
- deptService.deleteById(id);
- return Result.success();
- }
-
- /**
- * 新增部门 - POST http://localhost:8080/depts 请求参数:{"name":"研发部"}
- */
- @PostMapping
- public Result save(@RequestBody Dept dept){
- //System.out.println("新增部门, dept=" + dept);
- log.info("新增部门, dept: {}" , dept);
- deptService.save(dept);
- return Result.success();
- }
-
- /**
- * 根据ID查询 - GET http://localhost:8080/depts/1
- */
- @GetMapping("/{id}")
- public Result getById(@PathVariable Integer id){
- //System.out.println("根据ID查询, id=" + id);
- log.info("根据ID查询, id: {}" , id);
- Dept dept = deptService.getById(id);
- return Result.success(dept);
- }
-
- /**
- * 修改部门 - PUT http://localhost:8080/depts 请求参数:{"id":1,"name":"研发部"}
- */
- @PutMapping
- public Result update(@RequestBody Dept dept){
- //System.out.println("修改部门, dept=" + dept);
- log.info("修改部门, dept: {}" , dept);
- deptService.update(dept);
- return Result.success();
- }
- }
复制代码
SpringBoot3+Vue3开发综合实战项目:
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战
logback.xml
(1.59 KB, 下载次数: 0, 售价: 50 金币)
|