【New Relic】Spring bootで外部ツールでログ出力したい(@SLF4J)


1. build.gradle

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-logging'
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'com.newrelic.agent.java:newrelic-api:7.4.0'
}

slf4jとNew Relicの依存関係を設定します


2. New Relicエージェントの設定

New RelicのJavaエージェントを設定する必要があります

newrelic.jarファイルをアプリケーションの/libディレクトリに配置し、起動スクリプトで以下のように指定します
(例えば、newrelic.jarがプロジェクトのlibディレクトリにある場合は、次のように実行します)

java -javaagent:./lib/newrelic.jar -jar your-app.jar

また、New Relicのnewrelic.yml設定ファイルをアプリケーションの/resourcesディレクトリに配置し、New Relicアカウント情報を設定します

詳しくはこちら


3. SLF4JとNew Relicを使用したログ出力

クラス内で@Slf4jアノテーションを使用して、ログを出力します

@Slf4j
@RestController
public class MyController {

    @GetMapping("/error")
    public String errorExample() {
        try {
            // 何らかの処理
            throw new RuntimeException("An unexpected error occurred");
        } catch (Exception e) {
         // New Relicにエラーログとカスタム項目を送信
         NewRelic.noticeError(e);
         NewRelic.addCustomParameter("requestId", "12345");
         NewRelic.addCustomParameter("userId", "user-67890");

         // エラーログの出力
         log.error("An error occurred: requestId={}, userId={}, errorMessage={}", "12345", "user-67890", e.getMessage(), e);

         throw e;
        }
        return "Error!";
    }
}

※ カスタム項目付与についてはこちら参照ください!

是非フォローしてください

最新の情報をお伝えします