本文介紹如何在PHP運行環境下打印和查看日志。
打印日志
函數計算內置了logger模塊,在使用內置運行時創建的函數中,您可以通過$GLOBALS['fcLogger']
使用該內置logger模塊,將打印的內容收集到創建服務時指定的日志服務Logstore中。使用其他方式創建的函數,您可以使用PHP提供的方法打印日志。
日志級別
您可以通過setLevel方法改變日志級別,其中日志級別從高到低如下所示。
日志級別 | Level | 接口 | 描述 |
EMERGENCY | 600 |
| 緊急日志 |
ALERT | 550 |
| 警示日志 |
CRITICAL | 500 |
| 嚴重警告 |
ERROR | 400 |
| 出錯信息 |
WARNING | 300 |
| 警告信息 |
NOTICE | 250 |
| 通知及常規日志 |
INFO(默認) | 200 |
| 詳細輸出信息 |
DEBUG | 100 |
| 調試日志 |
使用內置日志模塊打印日志
使用該方法打印的每條日志中都包含時間、RequestId和日志級別等信息。打印日志的示例如下:
<?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
上述例子中,打印函數也可以替換為其他輸出到標準輸出、標準錯誤的函數。
查看日志
函數執行完成后,您可以在函數詳情頁的調用日志頁簽查看日志信息。具體操作和說明,請參見查看調用日志。
文檔內容是否對您有幫助?