Java 在Spring Boot web应用程序中嵌入Tomcat配置lo4j2日志记录
我已成功将我的Spring Boot web应用程序配置为使用log4j2,配置文件如下:Java 在Spring Boot web应用程序中嵌入Tomcat配置lo4j2日志记录,java,log4j2,embedded-tomcat-8,Java,Log4j2,Embedded Tomcat 8,我已成功将我的Spring Boot web应用程序配置为使用log4j2,配置文件如下: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <Properties> <Property name="LOG_PATTERN"> %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${h
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="LOG_PATTERN">
%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex
</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<RollingFile name="FileAppender" fileName="${env:LEM_HOME}/Logs/LEM.log"
filePattern="${env:LEM_HOME}/Logs/LEM-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.mdenis.labequipmentmanager" level="debug" additivity="false">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender" />
</Logger>
<Logger name="org.apache.tomcat" level="debug" additivity="false">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender" />
</Logger>
<Logger name="org.springframework" level="debug" additivity="false">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender" />
</Logger>
<Logger name="org.hibernate" level="info" additivity="false">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender" />
</Logger>
<Root level="error">
<AppenderRef ref="ConsoleAppender"/>
</Root>
</Loggers>
</Configuration>
%d{yyyy-MM-dd HH:MM:ss.SSS}%5p${hostName}-[%15.15t]-40.40c{1.}:%m%n%ex
${LOG_PATTERN}
我知道它是有效的,因为当应用程序启动时,将Spring的日志级别设置为debug会给我提供大约一百万个日志条目。以下是POM.XML文件供参考:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mdenis</groupId>
<artifactId>LEM2</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Lab Equipment Manager</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
<dependencies>
<!--JAVA-->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!--TOMCAT-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--SPRING-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--MICROSOFT-->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
</dependency>
<!--HIBERNATE-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.12.Final</version>
</dependency>
<!--LOMBOK-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--JSTL-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--VMWARE-->
<dependency>
<groupId>com.vmware</groupId>
<artifactId>vijava</artifactId>
<version>5.1</version>
</dependency>
<!--LOG4J2-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</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>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.mdenis
LEM2
1.0-快照
实验室设备经理
${project.build.directory}/project
UTF-8
org.springframework.boot
spring启动程序父级
2.0.4.1发布
javax.validation
验证api
org.apache.tomcat.embed
汤姆卡特·贾斯珀
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
弹簧靴启动器jdbc
org.springframework
春季甲虫
org.springframework
spring上下文
org.springframework.boot
spring-boot-starter-log4j2
org.springframework.boot
弹簧靴开发工具
符合事实的
com.microsoft.sqlserver
mssql jdbc
org.hibernate
冬眠核心
org.hibernate
休眠验证器
6.0.12.1最终版本
org.projectlombok
龙目
javax.servlet
jstl
com.vmware
维爪哇
5.1
org.apache.logging.log4j
log4j-slf4j-impl
org.slf4j
slf4j api
org.apache.logging.log4j
log4japi
org.apache.logging.log4j
log4j型芯
org.apache.logging.log4j
log4j-1.2-api
org.apache.logging.log4j
log4jcl
org.apache.logging.log4j
log4jweb
org.springframework.boot
springbootmaven插件
重新包装
我唯一不能做的就是将Tomcat设置为调试级别。通过这些设置,我还可以将Hibernate设置为调试模式,因此我相信Tomcat有一些特定的功能
是否有一种方法可以使用log4j2控制Tomcat嵌入式日志级别,就像我在其他框架中所做的那样
谢谢 我搜索了更多,找到了如何做到这一点。您需要将其添加到运行的java-jar命令中:
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
由于某些原因,日志级别的更改不能像我使用自己的记录器那样以编程方式完成,因此您必须将其放入log4j2.xml文件中:
<Logger name="org.apache" level="debug" additivity="false">
<AppenderRef ref="ConsoleAppenderWebClient" />
<AppenderRef ref="FileAppenderWebClient" />
</Logger>