slf4j ロガーに CDI インジェクションを使おうと考えているので、プロデューサーを作成しました。
私ApplicationScoped
はシリアライズ可能なBeanにそれを注入しています:
@ApplicationScoped
public final class CurrentApplicationBean implements Serializable {
@Inject
private transient Logger logger;
}
org.slf4j.Logger
は拡張されないインターフェイスであるため、一時的である必要がありますSerializable
が、これは、逆シリアル化後にロガーを再注入する必要があることを意味します。
CDIはそれを処理していないと思いますが、あなたは何を知っていますか?
Logger
さらに、プロバイダはからロガー名を設定する必要があるため、常に新しいインスタンスを提供しますInjectionPoint
。これは、RequestScoped
クラスごとの静的ロガーではなく、Bean が独自のロガー インスタンスを持つことを意味します。
ロギングは、CDI インジェクションの適切なコンテキストではないかもしれません...あなたの考慮事項は何ですか?