2017-03-17 10 views
0

私はSpring Boot 1.5.2Logbackを使用しています。これはlogback-spring.xmlを使用して構成されています。そこでは、カスタムタイプのアペンダー(サブクラスRollingFileAppender)を定義し、注入された豆のペアを取得したいと考えています。Springブートを伴うLogback Appendersへの依存性注入

これは可能ですか?アペンダー@Componentなどに注釈を付けてみましたが、それはによって作成されたものなので、もちろん動作しません。私が適用できるトリックはありますか?

私の目標(アプリケーションコンテキストから豆をアペンダーに挿入する)を達成する標準的な方法は何ですか?

答えて

2

あなたがしようとしていることはできません。アプリケーションコンテキストが作成される前にログバックが初期化されるので、依存性注入を実行するものはありません。

おそらく、アペンダーに何をできるようにするかという別の質問をすることができますか? Springに管理されたBeanをその中に注入することを伴わない解決策があるかもしれません。

+0

アプリケーションコンテキストが準備されたら、後でappenderを追加する方法はありますか? – wujek

+1

@wujek http://stackoverflow.com/questions/16910955/programmatically-configure-logback-appender#17215011 –

0

は、このようなBeanを定義し、それを静的getBeanメソッドを呼び出して、代わりに依存性の注入を使用するので試してみてください:

@Component 
public class BeanFinderGeneral implements ApplicationContextAware { 

    private static ApplicationContext applicationContext; 

    public static <T> T getBean(Class<T> clazz) { 
     return applicationContext.getBean(clazz); 
    } 

    @Override 
    public void setApplicationContext(ApplicationContext pApplicationContext) throws BeansException { 
     applicationContext = pApplicationContext; 
    } 
} 
0

春ブーツでは、コンフィギュレーションクラスを記述することができますし、としてあなたlogbackクラスのBeanを作成します以下のようになります。

このクラスを春にスキャンすると、このBeanが作成され、コンテキストに挿入されます。 私はあなたの質問を正しく理解してくれることを願っています。あなたはカスタムアペンダーをアプリケーションコンテキストに注入する必要があります。

0

logback-extensionsを使用すると、スプリングアプリケーションコンテキストファイルまたはスプリングコンフィグレーションファクトリでアペンダを作成できます。

+0

最後のコミット:2015年9月10日。私は尋ねる前にこれを使用しないことに決めましたが、とにかく感謝します。 – wujek

関連する問題