修改日志记录
This commit is contained in:
parent
55dca459a0
commit
23308b03a5
|
|
@ -0,0 +1,14 @@
|
|||
package com.bonus.emergencyrap.mapper;
|
||||
|
||||
import com.bonus.emergencyrap.vo.TaskMessageVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface LogsMapper {
|
||||
|
||||
/**
|
||||
* 添加日志数据
|
||||
* @param logs
|
||||
*/
|
||||
void addLogs(TaskMessageVo logs);
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.bonus.emergencyrap.service;
|
|||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.bonus.emergencyrap.constant.TextConstants;
|
||||
import com.bonus.emergencyrap.mapper.LogsMapper;
|
||||
import com.bonus.emergencyrap.utils.DateTimeHelper;
|
||||
import com.bonus.emergencyrap.utils.TextFileUtils;
|
||||
import com.bonus.emergencyrap.utils.UploadFile;
|
||||
|
|
@ -9,6 +10,7 @@ import com.bonus.emergencyrap.vo.TaskMessageVo;
|
|||
import com.bonus.emergencyrap.vo.TaskProcessVo;
|
||||
import com.bonus.emergencyrap.vo.TaskVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -17,48 +19,36 @@ import java.util.UUID;
|
|||
@Slf4j
|
||||
public class LogsUtils {
|
||||
|
||||
@Autowired
|
||||
private LogsMapper mapper;
|
||||
|
||||
public final static String SUCCESS="1";
|
||||
|
||||
public final static String FAIL="0";
|
||||
/**
|
||||
* 执行日志添加
|
||||
* @param vo
|
||||
* @param processVo
|
||||
* @param success
|
||||
* @param success 1成功 2失败
|
||||
* @param message
|
||||
*/
|
||||
public void addLogs(TaskVo vo, TaskProcessVo processVo,String success,String message) {
|
||||
try{
|
||||
String day=DateTimeHelper.getNowYMD();
|
||||
String filePtah= UploadFile.getFilePath(TextConstants.LOGS+day);
|
||||
boolean isCz=TextFileUtils.exists(filePtah);
|
||||
TaskMessageVo logs=new TaskMessageVo();
|
||||
String uuid=UUID.randomUUID().toString();
|
||||
logs.setTaskId(vo.getTaskId());
|
||||
logs.setId(uuid);
|
||||
logs.setTaskName(vo.getTaskName());
|
||||
logs.setDay(day);
|
||||
logs.setId(UUID.randomUUID().toString());
|
||||
logs.setCreateTime(DateTimeHelper.getNowTime());
|
||||
//记录失败的 操作元素
|
||||
if(FAIL.equals(success)){
|
||||
logs.setErrId(processVo.getId());
|
||||
}
|
||||
logs.setStatus(success);
|
||||
logs.setMessage(message);
|
||||
appendToFile(filePtah, JSON.toJSONString(logs),uuid,!isCz);
|
||||
mapper.addLogs(logs);
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加数据
|
||||
* @param filePath
|
||||
* @param content
|
||||
* @param id
|
||||
* @param append
|
||||
*/
|
||||
public void appendToFile(String filePath,String content,String id,boolean append){
|
||||
if(append){
|
||||
TextFileUtils.createFile(filePath);
|
||||
}else{
|
||||
TextFileUtils.appendToFile(filePath,"\n");
|
||||
}
|
||||
TextFileUtils.appendToFile(filePath,id);
|
||||
TextFileUtils.appendToFile(filePath,"=");
|
||||
TextFileUtils.appendToFile(filePath,content);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,13 @@ import lombok.Data;
|
|||
|
||||
@Data
|
||||
public class TaskProcessVo {
|
||||
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,9 +21,7 @@ server:
|
|||
|
||||
# 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.bonus: debug
|
||||
org.springframework: warn
|
||||
config: classpath:logback-spring.xml
|
||||
|
||||
|
||||
# Spring配置
|
||||
|
|
@ -75,6 +73,7 @@ task:
|
|||
seconds: 60
|
||||
|
||||
|
||||
|
||||
mybatis:
|
||||
mapper-locations: classpath:mapper/*Mapper.xml
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<property name="LOG_CONTEXT_NAME" value="log"/>
|
||||
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
||||
<property name="LOG_HOME" value="logs/${LOG_CONTEXT_NAME}" />
|
||||
<!-- 定义日志上下文的名称 -->
|
||||
<contextName>${LOG_CONTEXT_NAME}</contextName>
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!-- <!–格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符–>-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 彩色日志依赖的渲染类 -->
|
||||
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
|
||||
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
|
||||
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
|
||||
<!-- 彩色日志格式 -->
|
||||
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
|
||||
|
||||
<!--1. 输出到控制台-->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
<encoder>
|
||||
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
|
||||
<!-- 设置字符集 -->
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!--info日志统一输出到这里-->
|
||||
<appender name="file.info" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<Prudent>true</Prudent>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名,按小时生成-->
|
||||
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/info/info.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
|
||||
<pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
<!-- 此日志文件只记录info级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
|
||||
<!--错误日志统一输出到这里-->
|
||||
<appender name="file.error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<Prudent>true</Prudent>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名,按天生成-->
|
||||
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/error/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
|
||||
<pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
<!-- 此日志文件只记录error级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!--warn日志统一输出到这里-->
|
||||
<appender name="file.warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<Prudent>true</Prudent>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/warn/warn.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
|
||||
<pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
<!-- 此日志文件只记录warn级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>WARN</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 日志输出级别 -->
|
||||
<root level="DEBUG">
|
||||
<appender-ref ref="STDOUT" />
|
||||
<appender-ref ref="file.error" />
|
||||
<appender-ref ref="file.info" />
|
||||
<appender-ref ref="file.warn" />
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bonus.emergencyrap.mapper.LogsMapper">
|
||||
|
||||
<!--添加日志数据-->
|
||||
<insert id="addLogs">
|
||||
insert into tb_logs(id,task_id,status,err_reason,err_id,create_time )values
|
||||
(#{id},#{taskId},#{status},#{message},#{errId},#{createTime})
|
||||
</insert>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue