3

I'm trying to implement log4j2 with grails 2.5.3 and I'm having problems with the configuration properties.

I my older projects with log4j 1.x I used to have in the config.groovy file something like this:

import org.apache.log4j.*
...
log4j={
environments{
        production{
            appenders{
                def rollingAppender = new RollingFileAppender(
                name: "rollingAppender",
                layout: pattern(conversionPattern:"[%p] %d{yyyy-MM-dd HH:mm:ss.SSS} (%t) %c{2} %X - %ms : %m%n"),
                file: "/tmp/logs/catalina.out",
                bufferedIO: false,
                maxFileSize: "300MB"
                )

            appender rollingAppender
            }      
        }
        development{
            appenders {
                def rollingAppender = new RollingFileAppender(
                name: "rollingAppender",
                layout: pattern(conversionPattern:"[%p] %d{yyyy-MM-dd HH:mm:ss.SSS} (%t) %c{2} %X - %ms : %m%n"),
                file: "/tmp/logs/catalina.out",
                bufferedIO: false,
                maxFileSize: "15MB"
                )   
            appender rollingAppender
            }


        }
    }
info aditivity:false, rollingAppender:"grails.app.services"
info aditivity:false, rollingAppender:"grails.app.controllers"

}

Now, I have seen XML configuration files everywhere but I can't find the way to do it like I used to. I mean, I want to load different configs depending on the enviroment the application is running. Is it a possibility with log4j2?

I have something like this now:

import org.apache.logging.log4j.core.appender.RollingFileAppender
import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy
import org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy
import org.apache.logging.log4j.core.layout.PatternLayout
...
enviroments{
            development{
            appenders {
                def rollingAppender = new RollingFileAppender(
                    name: "rollingAppender",
                    filePattern: "/tmp/logs_bkp/catalina.%d{yyyy-MM-dd HH:mm:ss.SSS}.log.gz",
                    layout: new PatternLayout("[%p] %d{yyyy-MM-dd HH:mm:ss.SSS} (%t) %c{2} %X - %ms : %m%n")
                    fileName: "/tmp/logs/catalina.out",
                    bufferedIO: false,
                    policy: new SizeBasedTriggeringPolicy(1024),
                    strategy: new DefaultRolloverStrategy(2,1,"min",false,5)
                    )
            appender rollingAppender
            }


        }
}

I know it has some errors, but I can't figure it out how to make it work without using the XML config file. Any ideas?

Rodrigo
  • 173
  • 1
  • 1
  • 11

0 Answers0