找回密码
 立即注册
查看: 57|回复: 0

JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之日志技术

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 2025-11-21 13:18:56 | 显示全部楼层 |阅读模式
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之日志技术
1.png
  • JUL这是JavaSE平台提供的官方日志框架,也被称为JUL。配置相对简单,但不够灵活,性能较差。
  • Log4j一个流行的日志框架,提供了灵活的配置选项,支持多种输出目标。
  • Logback:基于Log4j升级而来,提供了更多的功能和配置选项,性能由于Log4j。
  • Slf4j(Simple Logging Facade for Java)简单日志门面,提供了一套日志操作的标准接口及抽象类,允许应用程序使用不同的底层日志框架。

1,Logback入门
1). 准备工作:引入logback的依赖(springboot中无需引入,在springboot中已经传递了此依赖

  1. <dependency>
  2.     <groupId>ch.qos.logback</groupId>
  3.     <artifactId>logback-classic</artifactId>
  4.     <version>1.4.11</version>
  5. </dependency>
复制代码
2). 引入配置文件 logback.xml  (资料中已经提供,拷贝进来,放在 src/main/resources 目录下; 或者直接AI生成)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.         <!-- 控制台输出 -->
  4.         <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  5.                 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  6.                         <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%logger显示日志记录器的名称, %msg表示日志消息,%n表示换行符 -->
  7.                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
  8.                 </encoder>
  9.         </appender>
  10.         <!-- 系统文件输出 -->
  11.         <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  12.                 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  13.                         <!-- 日志文件输出的文件名, %i表示序号 -->
  14.                         <FileNamePattern>D:/zidiu-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
  15.                         <!-- 最多保留的历史日志文件数量 -->
  16.                         <MaxHistory>30</MaxHistory>
  17.                         <!-- 最大文件大小,超过这个大小会触发滚动到新文件,默认为 10MB -->
  18.                         <maxFileSize>10MB</maxFileSize>
  19.                 </rollingPolicy>
  20.                 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  21.                         <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%msg表示日志消息,%n表示换行符 -->
  22.                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
  23.                 </encoder>
  24.         </appender>
  25.         <!-- 日志输出级别 -->
  26.         <root level="ALL">
  27.                 <appender-ref ref="STDOUT" />
  28.                 <appender-ref ref="FILE" />
  29.         </root>
  30. </configuration>
复制代码
Logback日志级别
日志级别指的是日志信息的类型,日志都会分级别,常见的日志级别如下(优先级由低到高):
日志级别
说明
记录方式
trace
追踪,记录程序运行轨迹 【使用很少】
log.trace("...")
debug
调试,记录程序调试过程中的信息,实际应用中一般将其视为最低级别 【使用较多】
log.debug("...")
info
记录一般信息,描述程序运行的关键事件,如:网络连接、io操作 【使用较多】
log.info("...")
warn
警告信息,记录潜在有害的情况 【使用较多】
log.warn("...")
error
错误信息 【使用较多】
log.error("...")
可以在配置文件logback.xml中,灵活的控制输出那些类型的日志。(大于等于配置的日志级别的日志才会输出)
  1. <!-- 日志输出级别 -->
  2. <root level="info">
  3.     <!--输出到控制台-->
  4.     <appender-ref ref="STDOUT" />
  5.     <!--输出到文件-->
  6.     <appender-ref ref="FILE" />
  7. </root>
复制代码
日志开关配置 (开启日志(ALL),取消日志(OFF))
  1. <!-- 日志输出级别 -->
  2. <root level="ALL">
  3.     <!--输出到控制台-->
  4.     <appender-ref ref="STDOUT" />
  5.     <!--输出到文件-->
  6.     <appender-ref ref="FILE" />
  7. </root>
复制代码
案例日志记录
  1. /**
  2. * 部门管理控制器
  3. */
  4. @Slf4j
  5. @RequestMapping("/depts")
  6. @RestController
  7. public class DeptController {
  8.     @Autowired
  9.     private DeptService deptService;
  10.     /**
  11.      * 查询部门列表
  12.      */
  13.     //@RequestMapping(value = "/depts", method = RequestMethod.GET)
  14.     @GetMapping
  15.     public Result list(){
  16.         //System.out.println("查询部门列表");
  17.         log.info("查询部门列表");
  18.         List<Dept> deptList = deptService.findAll();
  19.         return Result.success(deptList);
  20.     }
  21.     /**
  22.      * 根据id删除部门 - delete http://localhost:8080/depts?id=1
  23.      */
  24.     @DeleteMapping
  25.     public Result delete(Integer id){
  26.         //System.out.println("根据id删除部门, id=" + id);
  27.         log.info("根据id删除部门, id: {}" , id);
  28.         deptService.deleteById(id);
  29.         return Result.success();
  30.     }
  31.     /**
  32.      * 新增部门 - POST http://localhost:8080/depts   请求参数:{"name":"研发部"}
  33.      */
  34.     @PostMapping
  35.     public Result save(@RequestBody Dept dept){
  36.         //System.out.println("新增部门, dept=" + dept);
  37.         log.info("新增部门, dept: {}" , dept);
  38.         deptService.save(dept);
  39.         return Result.success();
  40.     }
  41.     /**
  42.      * 根据ID查询 - GET http://localhost:8080/depts/1
  43.      */
  44.     @GetMapping("/{id}")
  45.     public Result getById(@PathVariable Integer id){
  46.         //System.out.println("根据ID查询, id=" + id);
  47.         log.info("根据ID查询, id: {}" , id);
  48.         Dept dept = deptService.getById(id);
  49.         return Result.success(dept);
  50.     }
  51.     /**
  52.      * 修改部门 - PUT http://localhost:8080/depts  请求参数:{"id":1,"name":"研发部"}
  53.      */
  54.     @PutMapping
  55.     public Result update(@RequestBody Dept dept){
  56.         //System.out.println("修改部门, dept=" + dept);
  57.         log.info("修改部门, dept: {}" , dept);
  58.         deptService.update(dept);
  59.         return Result.success();
  60.     }
  61. }
复制代码

SpringBoot3+Vue3开发综合实战项目:
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战

logback.xml (1.59 KB, 下载次数: 0, 售价: 50 金币)

网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-1 07:02

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表