このトピックでは、PHPランタイムでログを印刷および表示する方法について説明します。
ログの印刷
Function Computeは、組み込みのロガーモジュールを提供します。 関数が組み込みランタイムを使用して作成されている場合、組み込みロガーモジュールを使用してログを印刷し、$GLOBALS['fcLogger']
を使用してサービスを作成したときに指定したSimple Log Service Logstoreに印刷されたログを収集できます。 関数が別の方法を使用して作成されている場合は、PHPの対応するロギング方法を使用してログを印刷できます。
ログレベル
setLevelメソッドを呼び出して、印刷するログのレベルを指定できます。 次の表に、ログレベルを重大度の降順で示します。
ログレベル | レベル | インターフェイス | 説明 |
緊急事態 | 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
ログ印刷機能を使用してログを印刷
ロング印刷コマンドを使用してログを印刷すると、ログの内容が印刷されます。 サンプルコード:
<?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
上记の例では, ログ印刷机能を标准出力と标准エラーを出力する他の机能に置き换えることもできます。
ログの表示
関数の実行後、[関数の詳細] ページの [ログ] タブで関数のログを表示できます。 詳細については、「呼び出しログの表示」をご参照ください。