このトピックでは、PHPランタイムでログを印刷および表示する方法について説明します。
ログ印刷
Function Computeは、組み込みのロガーモジュールを提供します。 関数が組み込みランタイムを使用して作成されている場合、$GLOBALS['fcLogger']
を使用して組み込みロガーモジュールを使用してログを印刷し、サービスの作成時に指定したSimple Log Service Logstoreに印刷されたログを収集できます。 関数が別の方法を使用して作成されている場合は、PHPが提供する方法を使用してログを印刷できます。
ログレベル
setLevelメソッドを呼び出して、印刷するログのレベルを指定できます。 次の表は、高から低までの重大度ごとのログレベルを示しています。
ログレベル | レベル | API 操作 | 説明 |
緊急事態 | 600 |
| 緊急ログ |
アラート | 550 |
| アラートログ |
CRITICAL | 500 |
| 重大な警告 |
ERROR | 400 |
| エラーメッセージ |
WARNING | 300 |
| 警告 |
通知 | 250 |
| 通知と一般ログ |
INFO (デフォルトの重大度) | 200 |
| 出力の詳細 |
デバッグ | 100 |
| ログのデバッグ |
組み込みログモジュールを使用してログを印刷
この方法を使用してログを印刷する場合、各ログには時間、リクエストID、ログレベルなどの情報が含まれます。 次のサンプルコードは、ログを印刷する方法を示しています。
<?php
function handler($event, $context) {
$logger = $GLOBALS['fcLogger'];
$logger->info('hello world');
$logger->critical('world hello');
$logger->setLevel(500);
$logger->info('hello world 2');
$logger->critical('world hello 2');
return 'hello world';
}
上記の例では、デフォルトのログレベルを使用して2つのログを出力し、デフォルトのログレベルを変更して1つのログを出力しています。
上記のコードを実行すると、次のログが出力されます。
FunctionCompute php7.2 runtime inited.
FC Invoke Start RequestId: 1-659xxxxx-16cxxxxx-39659xxxxxx
2024-01-04 10:50:44 1-659xxxxx-16cxxxxx-39659xxxxxx [INFO] hello world
2024-01-04 10:50:44 1-659xxxxx-16cxxxxx-39659xxxxxx [CRITICAL] world hello
2024-01-04 10:50:44 1-659xxxxx-16cxxxxx-39659xxxxxx [CRITICAL] world hello 2
\nFC Invoke End RequestId: 1-659xxxxx-16cxxxxx-39659xxxxxx
ログ印刷機能を使用してログを印刷
printコマンドを使用してログを印刷すると、ログの内容が印刷されます。 サンプルコード:
<?php
function handler($event, $context) {
var_dump("abcd");
echo "abcd 2\n";
fwrite(STDERR, "error\n");
return 'hello world';
}
サンプル出力:
FunctionCompute php7.2 runtime inited.
FC Invoke Start RequestId: 1-659xxxxx-165xxxxx-455a04xxxxxx
/code/index.php:4:
string(4) "abcd"
abcd 2
error
\nFC Invoke End RequestId: 1-659xxxxx-165xxxxx-455a04xxxxxx
上記の例のログ印刷機能を、標準出力および標準エラーメッセージを出力する他の機能に置き換えることができます。
ログの表示
関数の実行後、関数の詳細ページの [ログ] タブでログを表示できます。 詳細については、「呼び出しログの表示」をご参照ください。