日志的搭建

鼠扑  金牌会员 | 2022-9-16 17:16:40 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 941|帖子 941|积分 2823

@
目录

提示:本文仅供学习交流,请勿用于非法活动!
<font color="#999AAA">
<font color="#999AAA">一、依赖
  1.         <dependency>
  2.             <groupId>ch.qos.logback</groupId>
  3.             <artifactId>logback-classic</artifactId>
  4.         </dependency>
  5.         <dependency>
  6.             <groupId>ch.qos.logback</groupId>
  7.             <artifactId>logback-core</artifactId>
  8.         </dependency>
  9.         <dependency>
  10.             <groupId>org.slf4j</groupId>
  11.             <artifactId>slf4j-api</artifactId>
  12.         </dependency>
  13.         <dependency>
  14.             <groupId>org.slf4j</groupId>
  15.             <artifactId>jcl-over-slf4j</artifactId>
  16.         </dependency>
  17.         <dependency>
  18.             <groupId>org.logback-extensions</groupId>
  19.             <artifactId>logback-ext-spring</artifactId>
  20.         </dependency>
  21.         <dependency>
  22.             <groupId>commons-logging</groupId>
  23.             <artifactId>commons-logging</artifactId>
  24.         </dependency>
复制代码
二、日志文件

在resource -- profiles 文件下新建logback.xml文件
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  3.         <property name="project_name" value="com.demo" />
  4.         <contextName>${project_name}</contextName>
  5.         <property name="file_path" value="/logs/${project_name}"/>
  6.        
  7.         <appender name="ERROR_FILE" >
  8.                 <file>${file_path}/error.log</file>
  9.                
  10.                 <rollingPolicy >
  11.                        
  12.                         <fileNamePattern>${file_path}/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  13.                         <timeBasedFileNamingAndTriggeringPolicy >
  14.                                 <maxFileSize>100MB</maxFileSize>
  15.                         </timeBasedFileNamingAndTriggeringPolicy>
  16.                        
  17.                         <maxHistory>30</maxHistory>
  18.                 </rollingPolicy>
  19.                
  20.                 <encoder>
  21.                        
  22.                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  23.                 </encoder>
  24.                
  25.                 <filter >
  26.                         <level>ERROR</level>
  27.                         <onMatch>ACCEPT</onMatch>
  28.                         <onMismatch>DENY</onMismatch>
  29.                 </filter>
  30.         </appender>
  31.        
  32.         <appender name="INFO_FILE" >
  33.                 <file>${file_path}/info.log</file>
  34.                 <rollingPolicy >
  35.                         <fileNamePattern>${file_path}/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  36.                         <timeBasedFileNamingAndTriggeringPolicy >
  37.                                 <maxFileSize>100MB</maxFileSize>
  38.                         </timeBasedFileNamingAndTriggeringPolicy>
  39.                         <maxHistory>30</maxHistory>
  40.                 </rollingPolicy>
  41.                 <encoder>
  42.                        
  43.                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  44.                 </encoder>
  45.                
  46.                 <filter >
  47.                         <level>INFO</level>
  48.                         <onMatch>ACCEPT</onMatch>
  49.                         <onMismatch>DENY</onMismatch>
  50.                 </filter>
  51.         </appender>
  52.        
  53.         <appender name="DEBUG_FILE" >
  54.                 <file>${file_path}/debug.log</file>
  55.                 <rollingPolicy >
  56.                         <fileNamePattern>${file_path}/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  57.                         <timeBasedFileNamingAndTriggeringPolicy >
  58.                                 <maxFileSize>100MB</maxFileSize>
  59.                         </timeBasedFileNamingAndTriggeringPolicy>
  60.                         <maxHistory>30</maxHistory>
  61.                 </rollingPolicy>
  62.                 <encoder>
  63.                        
  64.                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  65.                 </encoder>
  66.                
  67.                 <filter >
  68.                         <level>DEBUG</level>
  69.                         <onMatch>ACCEPT</onMatch>
  70.                         <onMismatch>DENY</onMismatch>
  71.                 </filter>
  72.         </appender>
  73.        
  74.         <root level="ERROR">
  75.                 <appender-ref ref="ERROR_FILE" />
  76.         </root>
  77.         <root level="INFO">
  78.                 <appender-ref ref="INFO_FILE" />
  79.         </root>
  80.         <root level="DEBUG">
  81.                 <appender-ref ref="DEBUG_FILE" />
  82.         </root>
  83.        
  84.         <logger name="com.apache.ibatis" level="TRACE"/>
  85.         <logger name="java.sql.Connection" level="DEBUG"/>
  86.         <logger name="java.sql.Statement" level="DEBUG"/>
  87.         <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  88.         <logger name="com.cherry.shop" level="DEBUG"/>
  89. </configuration>
复制代码
三、代码编写

需要输出日志的类
  1. @Controller
  2. @RequestMapping("/jobSummary")
  3. public class JobSummaryController {
  4.         // 为该类打上日志
  5.     private final static Logger logger = LoggerFactory.getLogger(JobSummaryController.class);
  6.     @Autowired
  7.     private JobSummaryService jobSummaryService;
  8.    
  9.     /**
  10.      * 修改工作总结
  11.      * @param params
  12.      * @param r
  13.      * @return
  14.      */
  15.     @RequestMapping("/insertJobSummary")
  16.     @ResponseBody
  17.     public Result insertJobSummary(@Valid @RequestBody JobSummaryDto params, BindingResult r){
  18.         try{
  19.                 // 参数检测+
  20.             if(r.hasErrors()){
  21.                 return Results.error();
  22.             }
  23.             if(!StringUtils.isBlank(params.getId())){
  24.                 // 修改
  25.                 JobSummary jobSummary = jobSummaryService.selectById(params.getId());
  26.                 jobSummary.setJobContent(params.getJobContent());
  27.                 jobSummaryService.updateById(jobSummary);
  28.            
  29.             }
  30.             return Results.opOk();
  31.         } catch (Exception e) {
  32.             logger.error("修改工作总结失败!params:"+params.toString(),e);
  33.             return Results.updateError();
  34.         }
  35.     }
  36. }
复制代码
四、日志输出

在定义的目录下生成了三个日志文件:

其中我修改了工作总结,日志记录在debug文件里:
  1. 2021-12-03 12:11:23.194 [http-nio-8080-exec-6] DEBUG o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Written [Result [code=0, message=查询成功!, success=true, data=[JobSummary(id=687ea022c3744e628c5bcd8727a80002,
  2. jobContent=日常工作开展)]]] as "application/json" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@4ebbb7ef]
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

鼠扑

金牌会员
这个人很懒什么都没写!

标签云

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