将 log4j.properties 转换为 log4j2.properties

问题描述 投票:0回答:1

我正在从 log4j 1.2 迁移到 log4j 2.22.0。 问题是我的项目包含一个 log4j.properties 文件,并且我在将其转换为 log4j2.properties 时遇到问题。我在这里进行了很多讨论,但到目前为止没有任何帮助。 有人有什么想法吗?这是我的 .properties 文件。谢谢

!log4j.debug=true: Default is false. Outputs verbose info as log4j is configuring itself. 
log4j.debug=${log4j.isdebug}

log4j.rootCategory=${log4j.default.level},${log4j.appender}
log4j.category.fr.bowling=${log4j.mybowl.level}

log4j.category.org.apache.catalina=FATAL

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${log4j.path}/mybowl_main.log

log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-5p %d [%t] %X{UserSessionId} %c{1} %30m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


这是包含该部分的项目的development.properties

# logger Configuration of file: log4j.properties
log4j.default.level=ERROR
log4j.appender=CONSOLE,R
log4j.isdebug=false
log4j2.mybowl.level=DEBUG
log4j2.path=C:/LOGS/mybowl/

目前还没有结果!

log4j log4j2
1个回答
0
投票

要从版本 1.x 配置转换为版本 2.x 配置,您可以使用

org.apache.log4j.config.Log4j1ConfigurationConverter
 中的 
log4j-1.2-api
:

# Download `log4j-1.2-api` with deps
mvn dependency:copy -DoutputDirectory=log4j -Dartifact=org.apache.logging.log4j:log4j-1.2-api:2.22.0
mvn dependency:copy -DoutputDirectory=log4j -Dartifact=org.apache.logging.log4j:log4j-core:2.22.0
mvn dependency:copy -DoutputDirectory=log4j -Dartifact=org.apache.logging.log4j:log4j-api:2.22.0
java -cp 'log4j/*' org.apache.log4j.config.Log4j1ConfigurationConverter -i=log4j.properties -o=log4j2.xml

您获得此配置:

<?xml version="1.0"?>
<Configuration name="Log4j1">
  <Appenders>
    <RollingFile name="R" fileName="/mybowl_main.log" filePattern="/mybowl_main.log.%i">
      <PatternLayout pattern="%-5p %d [%t] %X{UserSessionId} %c{1} %30m%n"/>
      <Policies>
        <SizeBasedTriggeringPolicy size="10MB"/>
      </Policies>
      <DefaultRolloverStrategy max="3" fileIndex="min"/>
    </RollingFile>
    <Console name="CONSOLE" target="SYSTEM_OUT">
      <PatternLayout pattern="%-4r [%t] %-5p %c %ndc - %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="${sys:log4j.default.level}">
      <AppenderRef ref="${sys:log4j.appender}"/>
    </Root>
    <Logger name="fr.bowling" level="${sys:log4j.mybowl.level}"/>
    <Logger name="org.apache.catalina" level="FATAL"/>
  </Loggers>
</Configuration>

备注:如果您愿意,您可以将其转换为属性配置,但我不推荐它,因为它太复杂了。

© www.soinside.com 2019 - 2024. All rights reserved.