1

Log4j で groovy スクリプトを実行しようとしています。スクリプトは正常に実行されますが、log4j は初期化されていません。log4j.properties を src/main/resources に配置し、pom.xml のビルド セクションにリソースも含めました。以下は pom.xml の一部です

        <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>gmaven-plugin</artifactId>
            <version>1.5</version>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.gmaven.runtime</groupId>
                    <artifactId>gmaven-runtime-2.0</artifactId>
                    <version>1.5</version>
                </dependency>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy</artifactId>
                    <version>2.1.9</version>
                </dependency>
                <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>1.2.17</version>
                </dependency>
            </dependencies>
            <configuration>
                <providerSelection>2.0</providerSelection>
                <source>
                    ${pom.basedir}/src/main/groovy/Hello.groovy
                </source>
            </configuration>


            <executions>
                <execution>
                    <goals>
                        <goal>testCompile</goal>
                        <goal>compile</goal>
                        <goal>generateStubs</goal>
                        <goal>execute</goal>
                    </goals>
                </execution>

            </executions>
        </plugin>

次のコマンドを使用してスクリプトを実行しました。

mvn org.codehaus.gmaven:gmaven-plugin:1.5:execute

スクリプトの実行の最後に次の警告が表示されます。

log4j:WARN No appenders could be found for logger (...).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
4

1 に答える 1

0

同様のことを行い、スクリプトの先頭で log4j を明示的に初期化する必要がありました。

import org.apache.log4j.PropertyConfigurator

def config = new ConfigSlurper().parse( new File( 
                  "${basedir.canonicalPath}/src/main/scripts/log4j.groovy" ).toURL())
PropertyConfigurator.configure(config.toProperties())

その後、通常のロギング(Java呼び出しで)は正常に機能しました。

これが私のテスト log4j.groovy ファイルです。

log4j.appender.stdout = "org.apache.log4j.ConsoleAppender"
log4j.appender."stdout.layout" = "org.apache.log4j.PatternLayout"
log4j.appender."stdout.layout.ConversionPattern" = "%-5p [%c{1}]: %m%n"
log4j.rootLogger="error,stdout"
log4j.logger.com.myCompany = "info,stdout"
log4j.additivity.com.myCompany = false
于 2013-11-28T04:17:21.753 に答える