は、私はちょうどシームはんだを使用し始めましたし、そのロギングモジュールは、私のテスト例えばポストの底に興味深いhttp://docs.jboss.org/seam/3/solder/latest/reference/en-US/html/logging.htmlSEAM3はんだログ
参照してくださいコードを探します。
それを使用しようとしているから上昇しているいくつかの問題:
- 通常のlog4jのLoggerオブジェクトを注入する方法は?ドキュメントはちょうど
@Inject Logger log
ですが、これは簡単なようですが、デプロイ時に例外がスローされます。org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject com.company.application.controller.SessionController.log]
- 通常のロガーを注入する以外に、型付きロガーも面白そうでした。ドキュメントには、存在しない
@LogMessage
注釈を使用する必要があると主張されています。私の推測では、これは@Log
に改名されました。すべての通常のメソッド(情報、警告、エラーなど)を使用できるようにするには、ログインターフェイスをBasicLogger
に拡張するのは簡単ですが、このインターフェイスには注釈が正しく表示されないように見えるので、呼び出しハンドラは@Message
注釈をチェックし、何も見つからない)。何か間違っているのですか、フレームワークは本当に未完成ですか?私はたぶんシステムを開発するときに通常のlog4jに固執すべきでしょうか?
インタフェース
@MessageLogger
public interface SessionLogger extends BasicLogger{
@Message("User %s logged in. Redirecting to %s.")
@Log(level= Level.INFO)
void login(String username, String to);
@Message("User %s logged out.")
void logout(String username);
}
使用
@Inject SessionLogger log
...
log.login("username", "url");