JustQuest
JustQuest

Reputation: 299

Converting log4j.properties into log4j2.xml

I never worked with this type of issue and now I'm supposed to port log4j.properties file into log4j2.xml and I'm having bunch of problems.

Is there any tool that I could use for this? Or any guide because I'm really stuck here.

List of some Log4j.properties that I have to transfer:

log4j.additivity.com.company.areas.audit.config.auditors.TransactionAuditor=false;
(Bunch of lines like these below, with different paths)
log4j.logger.net.sf=WARN, FILE,FILE_ERROR,CONSOLE
log4j.logger.xxxx.yyyy.zzzz = ERROR,FILE,FILE_ERROR,CONSOLE
log4j.logger.aaaa.bbbb.cccc = INFO, FILE,FILE_ERROR,CONSOLE
log4j.appender.CONSOLE.Threshold=OFF
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${base.path}/logs/application.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n
log4j.appender.FILE.MaxFileSize=100000KB
log4j.appender.FILE.MaxBackupIndex=5
log4j.appender.FILE_PERFORMANCE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE_PERFORMANCE.File=${base.path}/logs/application_performance.log
log4j.appender.FILE_PERFORMANCE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE_PERFORMANCE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n
log4j.appender.FILE_PERFORMANCE.MaxFileSize=10000KB
log4j.appender.FILE_PERFORMANCE.MaxBackupIndex=2
(and bunch of similar stuff but for example instead of FILE_PERFORMACE I have things like: "FILE_ERROR" -> log4j.appender.FILE_ERROR = org.apache.log4j.RollingFileAppender", "FILE_INTEGRATION" etc"

If someone could help me translate these properties from above, I believe I would be able to translate others by myself because they're similar to these.

Thanks in advance!

Upvotes: 1

Views: 5842

Answers (1)

JustQuest
JustQuest

Reputation: 299

I didn't find tool that would translate log4j.properties file into log4j2.xml but manual translation ended up being quite simple.

Example for loggers:

log4j.additivity.com.exm.tst.audit.config.auditors.TransactionAuditor=false
log4j.logger.com.exm.tst.audit.config.auditors.TransactionAuditor=ERROR, FILE

Will become:

<Logger name="com.exm.tst.audit.config.auditors.TransactionAuditor" 
   additivity="false" level="ERROR">
   <appender-ref ref="FILE"/>
</Logger>

Example for appenders:

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${catalina.base}/logs/application.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n
log4j.appender.FILE.MaxFileSize=100000KB
log4j.appender.FILE.MaxBackupIndex=5

Will become:

<RollingFile name="FILE" fileName="${sys:catalina.home}/logs/application.log"
    filePattern="${sys:catalina.home}/logs/application.%i.log.gz" >
    <PatternLayout pattern="${LOG_PATTERN}"/>
    <Policies>
        <SizeBasedTriggeringPolicy size="10000KB" />
    </Policies>
    <DefaultRolloverStrategy max="5"/>
</RollingFile>

So entire log4j2.xml file based on this example should look like this:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
 
    <!-- Logging Properties -->
    <Properties>
        <Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n</Property>
    </Properties>
     
    <Appenders>
         
        <RollingFile name="FILE" fileName="${sys:catalina.home}/logs/application.log"
            filePattern="${sys:catalina.home}/logs/application.%i.log.gz" >
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="10000KB" />
            </Policies>
            <DefaultRolloverStrategy max="5"/>
        </RollingFile>
         
    </Appenders>
 
    <Loggers>
     
        <Logger name="com.exm.tst.audit.config.auditors.TransactionAuditor" 
           additivity="false" level="ERROR">
           <appender-ref ref="FILE"/>
        </Logger>
 
    </Loggers>
 
</Configuration>

Upvotes: 6

Related Questions