Migrating from log4j to log4j2 - properties file configuration
Asked Answered
J

5

29

I have a Java application which is using log4j configured as below.

log4j.properties:

log4j.rootLogger=INFO, R
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = /trace.log
log4j.appender.R.Append = true
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{HH:mm:ss} %c{1} [%p] %m%n

I would like to migrate to log4j2 with the same configuration as above. Haven't found anything related to log4j2 properties configuration file as this support recently included.

How would be my log4j2.properties file with the same configuration above ?

Jilli answered 9/3, 2016 at 19:12 Comment(0)
J
30

Here is what I constructed after going through the documentation and worked.

rootLogger.level = INFO
property.filename = trace.log
appenders = R, console

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n

appender.R.type = RollingFile
appender.R.name = File
appender.R.fileName = ${filename}
appender.R.filePattern = ${filename}.%d{yyyy-MM-dd}
appender.R.layout.type = PatternLayout
appender.R.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
appender.R.policies.type = Policies
appender.R.policies.time.type = TimeBasedTriggeringPolicy
appender.R.policies.time.interval = 1

rootLogger.appenderRefs = R, console

rootLogger.appenderRef.console.ref = STDOUT
rootLogger.appenderRef.R.ref = File
Jilli answered 26/9, 2016 at 13:13 Comment(0)
D
13

You can use this to convert from Log4J.properties (v1.2) to log4j2.xml as below:

1) Convert from v1.2 properties to v1.2XML using this converter: https://log4j-props2xml.appspot.com/

2) Convert from v1.2 XML to v2.0 XML (i.e. Log4j2.xml) using the procedure provided on this link: https://logging.apache.org/log4j/2.x/manual/migration.html

Derryberry answered 26/6, 2017 at 17:29 Comment(0)
C
3

Log4j2 supports .properties files but they have changed property syntax. You can check their manual here it covers all you need to create new configuration.

Coyne answered 9/3, 2016 at 19:22 Comment(0)
G
3

I know it's an old issue but for the sake of history:

Since Log4j2 2.13.0 there is an experimental feature for Log4j 1 configuration files: http://logging.apache.org/log4j/2.x/manual/compatibility.html

Related JIRA issue: https://issues.apache.org/jira/browse/LOG4J2-63

Gurtner answered 9/1, 2020 at 8:23 Comment(0)
C
-3

You can use this wonderful frontend web to convert you properties to a XML http://log4j-props2xml.appspot.com/

Resulting:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="R" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="Append" value="true"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <param name="File" value="/trace.log"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{HH:mm:ss} %c{1} [%p] %m%n"/>
        </layout>
    </appender>
    <root>
        <level value="INFO"/>
        <appender-ref ref="R"/>
    </root>
</log4j:configuration>

Coprophilous answered 9/3, 2016 at 19:26 Comment(1)
again this is log4j not log4j2. I need log4j2 configuration in properties file.Jilli

© 2022 - 2024 — McMap. All rights reserved.