才高八斗的手套 · WebView class - ...· 1 年前 · |
不要命的铁链 · 轻量化网络:PeleeNet及其Pelee- ...· 1 年前 · |
大气的鼠标 · SAP ABAP实用技巧介绍系列之 ...· 1 年前 · |
热心肠的柚子 · Linux的JDK和Jenv(JAVA_HO ...· 1 年前 · |
我正在尝试从log4j1.x迁移到log4j2.x。
Followed this link - https://logging.apache.org/log4j/2.x/manual/migration.html
但我没有看到日志是在更改后生成的。我不知道我错过了什么。
下面是详细的log4j版本-
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
代之以-
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.6.2</version>
</dependency>
我看到 log4j-1.2.17 .jar被这四个罐子取代了-
这是现有的配置文件(文件名 /usr/local/log4j.properties ) -
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/access.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
取代了这个系统的属性值-
logging.config=/usr/local/log4j.properties
用这两条线
log4j1.compatibility=true
log4j.configuration=/usr/local/log4j.properties
发布于 2022-01-06 07:35:40
Spring
会在非常早期阶段重新配置日志框架的
。这就是为什么您的外部
log4j.properties
文件在应用程序启动期间被Spring替换的原因。
如果不提供
logging.config
属性,将使用一个固定的类路径资源列表(cf )。(
列表
)或应用默认配置。
在 最近的 Log4j版本上,只需设置系统属性:
logging.config=/usr/local/log4j.properties
log4j.configurationFactory=org.apache.log4j.config.Log4j1ConfigurationFactory
但是,您不能使用最近的版本,因为:
log4j-core
中呈现版本2.7.0及更高版本,与SpringBoot1.2.x不兼容,
使用版本2.3.2,您需要将
log4j.properties
文件转换为Log4j 2.x格式(您可以使用转换器
从这个问题
):
<?xml version="1.0"?>
<Configuration name="Log4j1">
<Appenders>
<RollingFile name="file" fileName="/var/log/access.log"
filePattern="/var/log/access.log.%i">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
<Policies>
<SizeBasedTriggeringPolicy size="5MB" />
</Policies>
<DefaultRolloverStrategy max="10" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="file" />
</Root>
</Loggers>
</Configuration>
并设置系统属性:
logging.config=/path/to/the/file/above.xml
备注:
Spring提供了一系列启动程序,这些启动程序提取了正确的依赖项。为了使用Log4j 2.x,只需排除标准
spring-boot-starter-logging
并包含
spring-boot-starter-log4j2
。不需要显式的Log4j依赖项(除非在代码中使用Log4j 1.x ):
<properties>
<log4j2.version>2.3.2</log4j2.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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-log4j2</artifactId>
</dependency>