このトピックでは、Javaランタイム環境でログを印刷および表示する方法について説明します。
ログの印刷
関数によって標準出力 (stdout) または標準エラー (stderr) に出力されたログは、サービスの作成時に指定したSimple Log Service Logstoreに収集されます。 fc-java-coreライブラリで提供されるcontext.getLogger
メソッドを使用して、ログを印刷できます。 ログバックなどの一般的なログライブラリを使用してログを印刷することもできます。
context.getLogger
メソッドを使用してログを印刷することを推奨します。 この方法を使用して印刷されるログにはリクエストIDが含まれており、リクエスト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());
}
}
上記のサンプルコードを実行すると、次の内容が出力されます。
メッセージ: 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。 |
コードチェック値 | 関数の呼び出しに使用されるコードパッケージの検証コード。 |
関数の実行時間 | 関数ハンドラーが実際に実行するのにかかる時間。 |
関数課金時間 | 関数の呼び出しに対して課金される時間。 |
関数メモリ | 関数に割り当てられているメモリ。 |
実際の使用メモリ | 関数によって使用されるメモリの最大サイズ。 |
ログの表示
関数の実行後、[関数の詳細] ページの [ログ] タブで関数のログを表示できます。 詳細については、「関数呼び出しログの表示」をご参照ください。