第2章 アプリケーションの JBoss Logging を有効にする
JBoss Logging を使用してアプリケーションログを収集する場合は、ログを生成する各クラスにロガーを追加する必要があります。次の手順は、API アプローチを使用してプログラムで、またはアノテーションを使用して宣言的に、アプリケーションにロギングを追加する方法を示しています。
手順
アプリケーションコードに応じて、次のいずれかの方法を使用します。
org.jboss.logging.Logger
のインスタンスを作成し、各クラスの静的メソッドLogger.getLogger(Class)
を呼び出して初期化します。src/main/java/org/acme/ExampleResource.java
import org.jboss.logging.Logger; 1 import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") public class ExampleResource { private static final Logger LOG = Logger.getLogger(ExampleResource.class); 2 @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { LOG.info("Hello"); 3 return "hello"; } }
bean およびリソースクラスに、設定した
org.jboss.logging.Logger
インスタンスを注入します。src/main/java/org/acme/ExampleResource.java
import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.jboss.logging.Logger; 1 import io.quarkus.arc.log.LoggerName; @Path("/hello") public class ExampleResource { @Inject Logger log; 2 @LoggerName("foo") Logger fooLog; 3 @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { log.info("Simple!"); fooLog.info("Goes to foo logger!"); return "hello"; } }
注記ロガーインスタンスは内部的にキャッシュされます。Bean に注入するロガーは、すべての Bean インスタンスで共有され、ロガーのインスタンス化に関連するパフォーマンスの低下を回避します。
(オプション)
application.properties
ファイルでロギング出力を設定します。src/main/resources/application.properties
<configuration_key>=<value>
たとえば、ログファイルを作成し、出力結果をコンソールとファイルに出力できます。
src/main/resources/application.properties
quarkus.log.file.enable=true quarkus.log.file.path=/tmp/trace.log
アプリケーションを開発モードで実行します。
./mvnw quarkus:dev
-
http://localhost:8080/hello
を参照します。 設定に応じて、端末またはログファイルでログメッセージを確認します。
ロギングレベルが
INFO に
設定されたExampleResource.class
の出力例:2021-05-21 15:38:39,751 INFO [io.quarkus] (Quarkus Main Thread) my-project my-version on JVM (powered by Quarkus 1.13.3.Final) started in 1.189s. Listening on: http://localhost:8080 2021-05-21 15:38:39,765 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2021-05-21 15:38:39,766 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy] 2021-05-21 15:38:58,790 INFO [ExampleResource] (executor-thread-1) Hello
関連情報