このトピックでは、Javaランタイム環境でログを印刷および表示する方法について説明します。
ログの印刷
関数によって標準出力 (stdout) または標準エラー (stderr) に印刷されたコンテンツは、サービスの作成時に指定したLogstoreに収集されます。 fc-java-coreライブラリで提供されるcontext.getLogger
メソッドを使用してログを印刷するか、ログを印刷するログバックなどの一般的なログライブラリを使用してログを印刷することができます。
context.getLogger
メソッドを使用してログを印刷することを推奨します。 この方法で印刷されるログには、エラーのトラブルシューティングに役立つリクエストIDが含まれています。
context.getLoggerを使用してログを印刷
この方法を使用してログを印刷する場合、各ログには時間、リクエストID、ログレベルなどの情報が含まれます。 次のサンプルコードに例を示します。
package example;
import com.aliyun.fc.runtime.Context;
import com.aliyun.fc.runtime.StreamRequestHandler;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class HelloFC implements StreamRequestHandler {
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
context.getLogger().info("hello world");
outputStream.write(new String("hello world").getBytes());
}
}
上記のサンプルコードを実行すると、次のログが出力されます。
message:2017-07-05T05:13:35.920Z a72df088-f738-cee3-e0fe-323ad891**** [INFO] hello world
次のコードを使用して、さまざまなレベルのログを印刷できます。
context.getLogger().trace
: TRACEレベルでログを出力します。context.getLogger().debug
: DEBUGレベルでログを出力します。context.getLogger().info
: INFOレベルでログを出力します。context.getLogger().warn
: WARNレベルのログを出力します。context.getLogger().error
: ERRORレベルのログを出力します。context.getLogger().fatal
: FATALレベルでログを出力します。
Function Computeは、各呼び出しのFC Invoke Start
行とFC Invoke End
行、および実行サマリーを記録します。 実行サマリのパラメーターを次の表に示します。
パラメーター | 説明 |
要求 ID | 呼び出しのリクエストID。 |
コードチェック値 | 関数の呼び出しに使用されるコードパッケージの検証コード。 |
関数の実行時間 | 関数ハンドラーが実際に実行するのにかかる時間。 |
関数課金時間 | 関数の呼び出しに対して課金される時間。 |
関数メモリ | 関数に割り当てられたメモリ。 |
実際の使用メモリ | 関数によって実際に使用されるメモリの最大量。 |
ログの表示
関数の実行後、関数の詳細ページの [ログ] タブでログを表示できます。 詳細については、「関数呼び出しログの表示」をご参照ください。