使用src/groovy文件中的log4j

dyk*_*ker 6 grails groovy log4j

我试图在grails项目中使用我的src/groovy类中的log4j,如下所示:

package com.brand.vh.importer.command

import org.apache.log4j.Logger

class NewOrder extends CommandAbstract {
   private final Logger log = Logger.getLogger(getClass())

   NewOrder() {
       log.debug("NewOrder constructor called")
   }
}
Run Code Online (Sandbox Code Playgroud)

在Config.groovy中,我有以下log4j设置:

....
// log4j configuration
import org.apache.log4j.DailyRollingFileAppender
log4j = {
    appenders {
        appender new DailyRollingFileAppender(
            name: "fileAppenderImporter",
            file: "log/importer.log",
            datePattern: "'.'yyyy-MM-dd",
            layout: pattern(
                        conversionPattern:
                        "%d{ISO8601} [%p][%X{IP}](%F:%M:%L):%n%m%n%n"
                    )
        )
        ....
    }
    ...
    debug additivity: false,
        fileAppenderImporter: ["com.brand.vh.importer"]
    ...
}
Run Code Online (Sandbox Code Playgroud)

但我的log/importer.log始终为空.我的代码/配置有什么问题?

我会很高兴任何建议,链接等

Rob*_*ner 2

我想知道你的参数是否有问题。

这对我有用:

log4j = {
    appenders {
        console name: 'stdout', layout: pattern(conversionPattern: '%d [%t] %-5p [%c(%F:%L)] - %m%n')
        appender new DailyRollingFileAppender(
                name: "fileAppenderImporter",
                file: "log/importer.log",
                datePattern: "'.'yyyy-MM-dd",
                layout: pattern(
                        conversionPattern:
                        "%d{ISO8601} [%p][%X{IP}](%F:%M:%L):%n%m%n%n"
                )
        )
    }

    root {
        debug 'stdout'
        info 'stdout'
        additivity = false
    }

    debug fileAppenderImporter: ['com.brand.vh.importer'], additivity: false
}
Run Code Online (Sandbox Code Playgroud)

用你相同的代码。