私は、様々なプロジェクトのロギングの中心的な構成として機能する簡単なgrailsプラグインを作っています。一般的な考え方は、プロジェクトにプラグインを追加するだけで、さまざまなアペンダーをルートロガーに注入するということです。私はGraylog2アペンダを使ってこれを最初にテストしています(これはConfig.groovyで設定すれば動作します)。アペンダが正しくルートロガーにインスタンス化され、装着されている Log4JアペンダをGrailsアプリケーションにインジェクトする
def rL = Logger.rootLogger
def layout = new PatternLayout(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n')
Appender appender = new org.graylog2.log.GelfAppender(
name:"gelf",
graylogHost:"graylog2.ourcompany.com",
extractStacktrace: true,
addExtendedInformation: true,
facility: "gelf-java",
threshold: org.apache.log4j.Level.INFO,
additionalFields: "{'runtime': 'grails', 'environment': 'dev', 'transport': 'gelf-java'}",
layout: layout
)
rL.addAppender(appender)
、ここ
から出力されます。これは、[起動時に実行されます] BootStrap.groovyの初期化中に、私が試したコード(()でありますrL.getAllAppenders()ToListメソッド()各{印刷it.toString()}:アペンダがログに書き込まれるルートロガー、およびエラーレベルのメッセージに追加されるにもかかわらず
だから
org.codeh[email protected]7a054197
[email protected]
、。 (デフォルトのConsole Loggerに表示されます)、単にGraylog2へのメッセージを出しません(私はこれを確認するためにWiresharkを使ってチェックしました)。私がちょうど別のプロジェクトのConfig.groovyに値を設定していれば、ksは正常です。明らかに、このプラグインの目的を破っています。
私は同じ問題を抱えていますが、Config.groovyでは、どのように動作させるかを教えてくれますか?事前に感謝 – gurbieta