CloudWatch Logs にカスタムメッセージを書き込む - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

CloudWatch Logs にカスタムメッセージを書き込む

Managed Service for Apache Flinkアプリケーションの CloudWatch ログにカスタムメッセージを書き込むことができます。Apachelog4jライブラリまたはSimple Logging Facade for Java (SLF4J)ライブラリを使用します。

Log4J を使用して CloudWatch Logs に書き込む

  1. 次の依存関係をアプリケーションのpom.xmlファイルに追加します。

    <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.6.1</version> </dependency>
  2. ライブラリからオブジェクトを含めます。

    import org.apache.logging.log4j.Logger;
  3. Loggerオブジェクトをインスタンス化し、次のアプリケーションクラスを渡します。

    private static final Logger log = LogManager.getLogger.getLogger(YourApplicationClass.class);
  4. log.infoを使用してログに書き込みます。アプリケーションログには、多数のメッセージが書き込まれます。カスタムメッセージをフィルタリングしやすくするには、INFOアプリケーションログレベルを使用してください。

    log.info("This message will be written to the application's CloudWatch log");

アプリケーションは、次のようなメッセージを含むレコードをログに書き込みます。

{ "locationInformation": "com.amazonaws.services.managed-flink.StreamingJob.main(StreamingJob.java:95)", "logger": "com.amazonaws.services.managed-flink.StreamingJob", "message": "This message will be written to the application's CloudWatch log", "threadName": "Flink-DispatcherRestEndpoint-thread-2", "applicationARN": "arn:aws:kinesisanalyticsus-east-1:123456789012:application/test", "applicationVersionId": "1", "messageSchemaVersion": "1", "messageType": "INFO" }

SLF4J を使用して CloudWatch Logs に書き込む

  1. 次の依存関係をアプリケーション pom.xml ファイルに追加します。

    <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> <scope>runtime</scope> </dependency>
  2. ライブラリからのオブジェクトを含めます。

    import org.slf4j.Logger; import org.slf4j.LoggerFactory;
  3. Loggerオブジェクトをインスタンス化し、次のアプリケーションクラスを渡します。

    private static final Logger log = LoggerFactory.getLogger(YourApplicationClass.class);
  4. log.infoを使用してログに書き込みます。アプリケーションログには、多数のメッセージが書き込まれます。カスタムメッセージをフィルタリングしやすくするには、INFOアプリケーションログレベルを使用してください。

    log.info("This message will be written to the application's CloudWatch log");

アプリケーションは、次のようなメッセージを含むレコードをログに書き込みます。

{ "locationInformation": "com.amazonaws.services.managed-flink.StreamingJob.main(StreamingJob.java:95)", "logger": "com.amazonaws.services.managed-flink.StreamingJob", "message": "This message will be written to the application's CloudWatch log", "threadName": "Flink-DispatcherRestEndpoint-thread-2", "applicationARN": "arn:aws:kinesisanalyticsus-east-1:123456789012:application/test", "applicationVersionId": "1", "messageSchemaVersion": "1", "messageType": "INFO" }