排除logback日志依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!-- 去掉springboot默认配置 --><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency>
如果排除不干净,建议使用mvn dependency:tree > dependency.log ,观察还有哪些日志依赖存在,并且需要排除
引入log4j2的依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId></dependency><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId></dependency>
新增log4j2-spring.xml配置文件
<?xml version="1.0" encoding="UTF-8"?><!--conifguration status与monitorInterval采用默认值 --><Configuration><properties><!--log root 云上改为/home/admin/logs,这里仅作为本地测试用 --><property name="log_root">E:\ideaProjects\ZS-Insurance-customer\logs</property><property name="app_name">insurance-customer</property><property name="log_level">info</property><property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS},%t,%-5level,%traceId,%logger{36} - %msg%n%throwable</property></properties><!--定义appender --><Appenders><!--输出控制台的配置 --><Console name="STDOUT-APPENDER" target="SYSTEM_OUT"><!--控制台输出日志格式--><PatternLayout pattern="${log_pattern}" charset="UTF-8"/></Console><Console name="STDERR-APPENDER" target="SYSTEM_ERR"><PatternLayout pattern="${log_pattern}" charset="UTF-8"/></Console><GRPCLogClientAppender name="GRPC-LOG" ><PatternLayout pattern="${log_pattern}" charset="UTF-8"/></GRPCLogClientAppender><!--打印节点定义:错误节点日志--><RollingFile name="ERROR-APPENDER" fileName="${log_root}/${app_name}/${app_name}-common-error.log"filePattern="${log_root}/${app_name}/${app_name}-common-error.log.%d{yyyy-MM-dd}" append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-common-error.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy><ThresholdFilter level="ERROR"/></RollingFile><!--打印节点定义:业务日常节点日志--><RollingFile name="APP-DEFAULT-APPENDER" fileName="${ctx:log_root}/${ctx:app_name}/${app_name}-app-default.log"filePattern="${log_root}/${app_name}/${app_name}-app-default.log.%d{yyyy-MM-dd}" append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-app-default.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:Spring日常节点日志--><RollingFile name="SPRING-DEFAULT-APPENDER" fileName="${ctx:log_root}/${ctx:app_name}/spring-default.log"filePattern="${log_root}/${app_name}/spring-default.log.%d{yyyy-MM-dd}" append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="spring-default.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:异步任务日志--><RollingFile name="TASK-SCHEDULER-APPENDER"fileName="${log_root}/${app_name}/${app_name}-task-scheduler.log"filePattern="${log_root}/${app_name}/${ctx:app_name}-task-scheduler.log.%d{yyyy-MM-dd}"append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-task-scheduler.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:消息监听日志--><RollingFile name="MSG-LISTEN-APPENDER"fileName="${log_root}/${ctx:app_name}/${app_name}-msg-listen.log"filePattern="${log_root}/${app_name}/${app_name}-msg-listen.log.%d{yyyy-MM-dd}" append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-msg-listen.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:业务日志--><RollingFile name="BUSINESS-SERVICE-APPENDER"fileName="${log_root}/${app_name}/${app_name}-business-service.log"filePattern="${log_root}/${app_name}/${app_name}-business-service.log.%d{yyyy-MM-dd}"append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-business-service.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:业务失败日志--><RollingFile name="BUSINESS-ERROR-APPENDER"fileName="${log_root}/${app_name}/${app_name}-business-error.log"filePattern="${log_root}/${app_name}/${app_name}-business-error.log.%d{yyyy-MM-dd}"append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-business-error.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:业务摘要日志--><RollingFile name="BUSINESS-DIGEST-APPENDER"fileName="${log_root}/${app_name}/${app_name}-business-digest.log"filePattern="${log_root}/${app_name}/${app_name}-business-digest.log.%d{yyyy-MM-dd}"append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-BUSINESS-digest.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile><!--打印节点定义:调用外部系统日志--><RollingFile name="INTEGRATION-APPENDER"fileName="${log_root}/${app_name}/${app_name}-integration.log"filePattern="${log_root}/${app_name}/${app_name}-integration.log.%d{yyyy-MM-dd}"append="true"><PatternLayoutpattern="${log_pattern}"charset="UTF-8"/><TimeBasedTriggeringPolicy/><DefaultRolloverStrategy><Delete basePath="${log_root}/${app_name}"><IfFileName glob="*-integration.log.*" /><IfLastModified age="10d" /></Delete></DefaultRolloverStrategy></RollingFile></Appenders><Loggers><Logger name="STDOUT" additivity="true" level="info"><AppenderRef ref="STDOUT-APPENDER"/></Logger><Logger name="STDERR" additivity="true" level="${log_level}"><AppenderRef ref="STDERR-APPENDER"/></Logger><Logger name="org.mybatis" additivity="true" level="${log_level}"><AppenderRef ref="SPRING-DEFAULT-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="org.springframework" additivity="true" level="${log_level}"><AppenderRef ref="SPRING-DEFAULT-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="com.isoftstone.cloud" additivity="true" level="${log_level}"><AppenderRef ref="APP-DEFAULT-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Root level="${log_level}" includeLocation="true"><AppenderRef ref="STDOUT-APPENDER"/><AppenderRef ref="APP-DEFAULT-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/><AppenderRef ref="GRPC-LOG"/></Root><Logger name="TASK-SCHEDULER" additivity="true" level="${log_level}" includeLocation="true"><AppenderRef ref="TASK-SCHEDULER-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="MSG-LISTEN" additivity="true" level="${log_level}" includeLocation="true"><AppenderRef ref="MSG-LISTEN-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="BUSINESS-SERVICE" additivity="true" level="${log_level}" includeLocation="true"><AppenderRef ref="BUSINESS-SERVICE-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="BUSINESS-ERROR" additivity="true" level="${log_level}" includeLocation="true"><AppenderRef ref="BUSINESS-ERROR-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="BUSINESS-DIGEST" additivity="true" level="${log_level}" includeLocation="true"><AppenderRef ref="BUSINESS-DIGEST-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Logger name="INTEGRATION" additivity="true" level="${log_level}" includeLocation="true"><AppenderRef ref="INTEGRATION-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger></Loggers></Configuration>
${app_name}-integration.log 调用外部接口日志 INTEGRATION
${app_name}-msg-listen.log 消息监听处理日志 MSG-LISTEN
${app_name}-scheldule.log 任务调度日志 TASK-SCHEDULER
${app_name}-business-service.log 业务日志 BUSINESS-SERVICE
${app_name}-business-error.log 业务错误日志 BUSINESS-ERROR
${app_name}-business-digest.log 业务摘要日志 BUSINESS-DIGEST
日志打印方式
private Logger logger= LoggerFactory.getLogger("DOMAIN-SERVICE");
