如何将 logback.xml 文件转换为 log4j2.properties 文件?
how to convert logback.xml file to log4j2.properties file?
我正在使用带有 springboot 的 logback。但现在我需要从 logback 迁移到 log4j2。我需要将下面的 logback.xml 转换为 log4j2.properties。我需要为 log4j2 添加什么依赖项。请帮我解决这个问题。
<property resource="application-logging.yml" />
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${fileName}/logfile.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${fileName}/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="com.samplelogging.logging.filter" level="INFO">
<appender-ref ref="INFO_FILE" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
提前致谢!
对于 Log4j2,您可以使用此依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
同样在 pom.xml 的属性部分,您必须指定修复漏洞的最新 log4j2 版本,即
<properties>
<log4j2.version>2.17.0</log4j2.version>
</properties>
这是我的 log4j2.xml :
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c:%L - %m%n
</Property>
<Property name="LOG_DIR">@log.dir@/@app.name@</Property>
<Property name="APP_NAME">@app.name@</Property>
</Properties>
<Appenders>
<Console name="Console">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<RollingFile name="rollingFileLogger"
fileName="${LOG_DIR}/${APP_NAME}.log"
filePattern="${LOG_DIR}/${APP_NAME}-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="${LOG_PATTERN}" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.myorg" level="info">
<AppenderRef ref="rollingFileLogger" />
</Logger>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
@log.dir@
和 @app.name@
是我的 application.properties
文件中实际值的占位符。
要使用 log4j2.properties 而不是 log4j2.xml,示例:
status = warn
name= com.myorg
# Log files location
property.basePath = @log.dir@/@app.name@
# RollingFileAppender name, pattern, path and rollover policy
appender.rolling.type = RollingFile
appender.rolling.name = fileLogger
appender.rolling.fileName= "${basePath}/${APP_NAME}.log"
appender.rolling.filePattern= ${basePath}/app_%d{yyyyMMdd}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
# Console appender configuration
appender.console.type = Console
appender.console.name = consoleLogger
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Configure root logger
rootLogger.level = info
rootLogger.appenderRef.rolling.ref = fileLogger
我正在使用带有 springboot 的 logback。但现在我需要从 logback 迁移到 log4j2。我需要将下面的 logback.xml 转换为 log4j2.properties。我需要为 log4j2 添加什么依赖项。请帮我解决这个问题。
<property resource="application-logging.yml" />
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${fileName}/logfile.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${fileName}/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="com.samplelogging.logging.filter" level="INFO">
<appender-ref ref="INFO_FILE" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
提前致谢!
对于 Log4j2,您可以使用此依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
同样在 pom.xml 的属性部分,您必须指定修复漏洞的最新 log4j2 版本,即
<properties>
<log4j2.version>2.17.0</log4j2.version>
</properties>
这是我的 log4j2.xml :
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c:%L - %m%n
</Property>
<Property name="LOG_DIR">@log.dir@/@app.name@</Property>
<Property name="APP_NAME">@app.name@</Property>
</Properties>
<Appenders>
<Console name="Console">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<RollingFile name="rollingFileLogger"
fileName="${LOG_DIR}/${APP_NAME}.log"
filePattern="${LOG_DIR}/${APP_NAME}-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="${LOG_PATTERN}" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.myorg" level="info">
<AppenderRef ref="rollingFileLogger" />
</Logger>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
@log.dir@
和 @app.name@
是我的 application.properties
文件中实际值的占位符。
要使用 log4j2.properties 而不是 log4j2.xml,示例:
status = warn
name= com.myorg
# Log files location
property.basePath = @log.dir@/@app.name@
# RollingFileAppender name, pattern, path and rollover policy
appender.rolling.type = RollingFile
appender.rolling.name = fileLogger
appender.rolling.fileName= "${basePath}/${APP_NAME}.log"
appender.rolling.filePattern= ${basePath}/app_%d{yyyyMMdd}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
# Console appender configuration
appender.console.type = Console
appender.console.name = consoleLogger
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Configure root logger
rootLogger.level = info
rootLogger.appenderRef.rolling.ref = fileLogger