3

我正在尝试使用 grails 2.5.3 实现 log4j2,但配置属性有问题。

我使用 log4j 1.x 的旧项目我曾经在 config.groovy 文件中有这样的东西:

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"

}

现在,我到处都看到了 XML 配置文件,但我找不到像以前那样做的方法。我的意思是,我想根据应用程序运行的环境加载不同的配置。log4j2有可能吗?

我现在有这样的事情:

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
            }


        }
}

我知道它有一些错误,但我无法弄清楚如何在不使用 XML 配置文件的情况下使其工作。有任何想法吗?

4

0 回答 0