Browse Source

日志文件配置

master
[li_she] 5 years ago
parent
commit
6d56d28f19
  1. 49
      src/main/java/com/gaotao/config/RequestHandlerConfig.java
  2. 63
      src/main/resources/logback.xml

49
src/main/java/com/gaotao/config/RequestHandlerConfig.java

@ -0,0 +1,49 @@
package com.gaotao.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.TimeZone;
/**
* @Author: 佘莉
* @Description: 全局时间格式转换
*/
@Slf4j
@Configuration
public class RequestHandlerConfig extends WebMvcConfigurationSupport {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//请求上下文初始化拦截器配置
log.info("初始化拦截器完成.....");
}
@Bean
public ObjectMapper jacksonObjectMapperCustomization() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
format.setTimeZone(timeZone);
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
.timeZone(timeZone)
.dateFormat(format);
return builder.build();
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.removeIf(c -> c instanceof MappingJackson2HttpMessageConverter);
converters.add(new MappingJackson2HttpMessageConverter(jacksonObjectMapperCustomization()));
}
}

63
src/main/resources/logback.xml

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->
<property name="log.root.level" value="INFO" /> <!-- 日志级别 -->
<property name="log.other.level" value="INFO" /> <!-- 其他日志级别 -->
<property name="log.base" value="logs" /> <!-- 日志路径,这里是相对路径,web项目eclipse下会输出到eclipse的安装目录下,如果部署到linux上的tomcat下,会输出到tomcat/bin目录 下 -->
<property name="log.moduleName" value="mes" /> <!-- 模块名称, 影响日志配置名,日志文件名 -->
<property name="log.max.size" value="100MB" /> <!-- 日志文件大小 -->
<!--控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</Pattern>
</encoder>
</appender>
<!-- 日志文件输出 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>logs/xujie-erp/xujie2021.log</File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/archive/DMERP2021%d{yyyy-MM-dd}.%i.log.zip
</FileNamePattern>
<!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出的文件的格式 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
</layout>
</appender>
<logger name="org.springframework.jdbc.core.StatementCreatorUtils"
additivity="false" level="INFO">
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.springframework.jdbc.core" additivity="true">
<level value="INFO" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="java.sql.Connection" additivity="true">
<level value="DEBUG" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="java.sql.Statement" additivity="true">
<level value="INFO" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="java.sql.PreparedStatement" additivity="true">
<level value="INFO" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="java.sql.ResultSet" additivity="true">
<level value="INFO" />
<appender-ref ref="STDOUT" />
</logger>
<!-- root将级别为“DEBUG”及大于“DEBUG”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console -->
<root level="INFO">
<appender-ref ref="STDOUT" /> <!-- 标识这个appender将会添加到这个logger -->
<appender-ref ref="file" />
</root>
</configuration>
Loading…
Cancel
Save