<?xml version="1.0" encoding="UTF-8"?>
<!--
1.把spring-boot-starter的spring-boot-starter-logging 排除掉,
2.引入spring-boot-starter-log4j2、 lombok(@Log4j2),
3.把默认日志文件log4j.properties改为 log4j.properties.back
4.在类上加注解@Log4j2
参考
官网翻译:https://blog.csdn.net/u013066244/article/details/72461105
https://www.callicoder.com/spring-boot-log4j-2-example/
https://www.cnblogs.com/keeya/p/10101547.html
https://blog.csdn.net/lwwl12/article/details/83109815
log4j是通过一个.properties的文件作为主配置文件的,
而log4j2采用的是log4j2.xml,log4j2.json 或者 log4j2.jsn
-->
<!--
Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,
当设置成trace时,你会看到log4j2内部各种详细输出。
monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<Configuration status="WARN" monitorInterval="30">
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--变量配置-->
<Properties>
<!-- 格式化输出:
%date 或 %d :日期,日期后面需要加格式化类型,如{yyyy-MM-dd HH:mm:ss.SSS}
%thread :线程名,
%-5level 或 %5p:级别从左显示5个字符宽度
%msg 或 %m:日志消息,
%n:换行符,
%logger{36} 表示 Logger 名字最长36个字符,
%L 行号
${hostName} 计算机的名字 -->
<!-- <Property name="LOG_PATTERN">
%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} - [%15.15t] %-40.40c{1.} : %m%n%ex
</Property> -->
<property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} ${hostName} [%thread] %-5level %logger{36} %L - %msg%n" />
<!-- FILE_PATH定义日志存储的路径,FILE_NAME 定义压缩日志名称前缀
SpringBoot 是log4j2日志,如果在eclipse,对应的 ${catalina.home:-.} 是 "项目根目录" ,
如果部署到windows 的 tomcat,则是tomcat 的 bin目录 如 D:\apache-tomcat-8.0.53\bin,所以路径需要 ${catalina.home:-.}/../logs ,
但部署到linux 的 tomcat,${catalina.home:-.}路径却是"系统根目录/" ,所以需要改为 ${sys:catalina.home}
ssm 项目是logback日志, 部署到tomcat, ${catalina.home:-.}则是tomcat的 目录,如 D:\apache-tomcat-8.0.53,
FILE_PATH 的 value 可以写绝对路径,如 value="H:\logs\" -->
<!-- dev环境,
window系统: ${catalina.home:-.}是 tomcat 的bin目录,如D:\apache-tomcat-8.0.53\bin,tomcat的logs目录,加.. 则在上一级目录,
本地IDE环境:${catalina.home:-.}在项目根目录,加了..则在上一级目录,
linux系统: ${catalina.home:-.}在系统根目录,
${sys:catalina.home}是tomcat 目录 -->
<property name="FILE_NAME" value="project-name-log4j2" />
<property name="FILE_PATH" value="${catalina.home:-.}/../logs/${FILE_NAME}-dev" />
<!-- beta环境-linux系统的tomcat,如果在IDE这么配置会报错,但不影响日志打印 -->
<!-- <property name="FILE_PATH" value="${sys:catalina.home}/logs/${FILE_NAME}-beta" /> -->
<!-- prod环境-linux系统 -->
<!-- <property name="FILE_PATH" value="${sys:catalina.home}/logs/${FILE_NAME}-prod" /> -->
</Properties>
<Appenders>
<Console name="AppenderConsole" target="SYSTEM_OUT" follow="true">
<!--输出日志的格式-->
<PatternLayout pattern="${LOG_PATTERN}"/>
<!--控制台只输出level及其以上级别的信息(onMatch)
log4j2日志滚动压缩,保留指定天数,异步邮件发送,亲测有效
最新推荐文章于 2022-06-06 15:07:48 发布