Log4j Logger(または一般的な場合は任意のクラス)を、logプロパティを持つすべてのクラスに注入したいと思います。
def log
これはGrailsで自動的に行われます。通常のgroovyアプリでも同じ機能が必要です。たとえば、の下にあるすべてのgroovyファイルについて説明しますsrc
。Log4jの特徴は、ロガーがログに記録するクラスを知る必要があることです。(Logger.getLogger(Class clazz)
)
どうすればこれを達成できますか?
Log4j Logger(または一般的な場合は任意のクラス)を、logプロパティを持つすべてのクラスに注入したいと思います。
def log
これはGrailsで自動的に行われます。通常のgroovyアプリでも同じ機能が必要です。たとえば、の下にあるすべてのgroovyファイルについて説明しますsrc
。Log4jの特徴は、ロガーがログに記録するクラスを知る必要があることです。(Logger.getLogger(Class clazz)
)
どうすればこれを達成できますか?
Groovy 1.8 で@Log
追加されたアノテーションを見たことがありますか?
Groovy は、クラスの@Log4j
注釈を使用して、これをネイティブにサポートします。これにより、log
問題のクラスと同じ名前の Log4J ロガーを指すフィールドが作成されます。つまり、次のようになります。
package com.example
import groovy.util.logging.Log4j
@Log4j
public class LogExample {
}
と同等です
package com.example
public class LogExample {
private static final Logger log = Logger.getLogger(LogExample.class)
}