全部產品
Search
文件中心

:日誌

更新時間:Jul 06, 2024

本文介紹如何在PHP運行環境下列印和查看日誌。

列印日誌

Function Compute內建了logger模組,在使用內建運行時建立的函數中,您可以通過$GLOBALS['fcLogger']使用該內建logger模組,將列印的內容收集到建立服務時指定的Log ServiceLogstore中。使用其他方式建立的函數,您可以使用PHP提供的方法列印日誌。

記錄層級

您可以通過setLevel方法改變記錄層級,其中記錄層級從高到低如下所示。

記錄層級

Level

介面

描述

EMERGENCY

600

$logger->emergency

緊急日誌

ALERT

550

$logger->alert

警示日誌

CRITICAL

500

$logger->critical

嚴重警告

ERROR

400

$logger->error

出錯資訊

WARNING

300

$logger->warning

警告資訊

NOTICE

250

$logger->notice

通知及常規日誌

INFO(預設)

200

$logger->info

詳細輸出資訊

DEBUG

100

$logger->debug

調試日誌

使用內建日誌模組列印日誌

使用該方法列印的每條日誌中都包含時間、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

上述例子中,列印函數也可以替換為其他輸出到標準輸出、標準錯誤的函數。

查看日誌

函數執行完成後,您可以在函數詳情頁的調用日誌頁簽查看日誌資訊。具體操作和說明,請參見查看調用日誌