Help us understand the problem. What is going on with this article?

Azure Application InsightsにLogbackでログ出力する

More than 3 years have passed since last update.

概要

Azure App ServiceにデプロイしたJavaアプリケーションからLogbackを使用してログ出力します。
Application InsightsというAzureのアプリケーション診断機能を出力先とします。

下記の内容を最小限の構成で導入したものになります。
Application Insights を使用した Java トレース ログの探索

Application Insights SDK for Javaの導入が前提となっているので、下記の手順の一部も実施します。
Java Web プロジェクトで Application Insights を使う

準備

Application Insights

Application Insightsが無い場合は作成します。
App ServiceのApplication Insightsを選択すると作成するよう促されます。
01.png

環境変数

Application Insightsの概要に表示されているインストルメンテーションキーを環境変数に設定します。
03.png

App Serviceのアプリケーション設定→アプリ設定に下記のキーの値にインストルメンテーションキーを入力します。

APPLICATION_INSIGHTS_IKEY

04.png

Maven

依存情報に以下を追加します。

pom.xml
<dependency>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>applicationinsights-logging-logback</artifactId>
  <version>1.0.6</version>
</dependency>

Application Insights SDK for Javaとして、下記のいずれかの依存情報が必要となります。

applicationinsights-core
applicationinsights-web

単純にログ出力するだけであれば、coreのみで可能です。
applicationinsights-logging-logbackがcoreに依存しているので、前述の依存情報のみで充足します。

logback.xml

logback.xmlにApplication Insights用のAppenderを定義します。

logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE logback>
<configuration>
  <appender name="aiAppender"
    class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
  </appender>
  <root level="trace">
    <appender-ref ref="aiAppender" />
  </root>
</configuration>

実装

あとはLogbackとして通常のログ出力するだけです。

Logger logger = LoggerFactory.getLogger(MyClass.class);
logger.trace("Logback to Application Insights");

実行結果

Application Insightsの概要→検索にトレースとして表示されるようになります。
私の環境では反映されるまでにタイムラグがありました(1分くらい?)。
06.png

まとめ

Azure App ServiceでJava使ったログ出力の情報が少ないです。
ASP.NETだとSystem.Diagnosticsを使ってアプリケーション診断に記録できるとかあるのですが。
Application Insightsを使うのが妥当なのかは不明ですが、とりあえずログ出力するという目的は達成できました。

参考

Application Insights を使用した Java トレース ログの探索
Java Web プロジェクトで Application Insights を使う
Azure App Service の Web アプリの診断ログの有効化

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした