您可以在Node.js運行環境中列印和查看日誌,通過日誌快速定位問題或分析日誌瞭解函數執行過程和耗時等,提升系統的可靠性和穩定性。
列印日誌
函數往標準輸出stdout列印的日誌內容會被收集到建立服務時指定的Logstore中,您可以使用如下幾種方式列印日誌至標準輸出stdout。範例程式碼如下所示。
ES模組
此樣本僅支援運行在Node.js 18及以上版本的運行時環境。
當前範例程式碼支援一鍵部署,您可以直接在Function ComputeFC中一鍵部署本代碼。nodejs-fc-log-es
export const handler = async (event, context) => {
process.stdout.write('hi,fc\n');
console.log('hello,world');
context.logger.info('hello,fc');
return "Hello World!";
};
CommonJS模組
'use strict';
exports.handler = (event, context, callback) => {
process.stdout.write('hi,fc\n');
console.log('hello,world');
context.logger.info('hello,fc');
callback(null, 'hello,world');
};
使用process.stdout.write列印日誌
使用此方法列印日誌會將內容原樣輸出到日誌中。輸出的日誌內容如下所示。
hi,fc
使用console.log列印日誌
使用此方法列印的每條日誌中都會包含時間、RequestId、記錄層級等資訊。輸出的日誌內容如下所示。
2024-03-04 07:01:16.927 1-65e571bc-158a59e8-b63f98cd471c [info] hello,world
直接使用context.logger列印日誌
當您配置的函數執行個體並發度大於1時,一個函數執行個體會同時並發處理多個請求。此時強烈建議使用context.logger列印日誌,以通過RequestId區分各並發請求的日誌。輸出的日誌內容如下所示。
2024-03-04 07:01:16.927 1-65e571bc-158a59e8-b63f98cd471c [[object Object]] hello,fc
自訂記錄層級
自訂記錄層級功能,僅在運行時 Nodejs18 和 Nodejs20 支援。
通過設定函數環境變數ALIYUN_FC_LOG_LEVEL的值來自訂日誌的列印層級。自訂的記錄層級從低到高排序為:debug、info、warn、error,其中debug最低,error最高。
列印日誌的層級大於或者等於ALIYUN_FC_LOG_LEVEL的值的時候,日誌才會輸出。
例如:當您設定環境變數ALIYUN_FC_LOG_LEVEL=warn
時,則只會列印記錄層級大於等於warn
的日誌(即warn和error日誌)。通過console.log
列印的日誌預設為info層級,info的記錄層級比設定的warn的層級低,此時不會列印info層級的日誌內容,使用process.stdout.write()
列印的日誌不會受該環境變數影響,是會列印其日誌的。
操作步驟
建一個用於測試的代碼目錄,如
code
。在
code
目錄下,建立index.js
代碼檔案,將下面範例程式碼儲存到index.js
。'use strict'; exports.handler = (event, context, callback) => { process.stdout.write('stdout log\n'); console.log('console log'); context.logger.debug('context log info'); context.logger.info('context log info'); context.logger.warn('context log warn'); context.logger.error('context log error'); callback(null, 'hello,world'); }
登入Function Compute控制台,選擇建立事件函數,運行環境需選擇Node.js 18或Node.js 20,上傳方式選擇通過檔案夾上傳代碼。更多具體操作,請參見建立事件函數。
在函數詳情頁面,選擇配置頁簽,然後在左側導覽列,選擇環境變數,在環境變數地區,單擊編輯。
當設定
ALIYUN_FC_LOG_LEVEL=warn
時,點擊測試函數,日誌輸出如下所示:
stdout log
2024-06-19 08:48:51.672 1--xxx-xxx-xxx [warn] context log warn
2024-06-19 08:48:51.672 1--xxx-xxx-xxx [error] context log error
查看日誌
函數執行完成後,您可以在函數詳情頁的調用日誌頁簽查看日誌資訊。具體操作和說明,請參見查看調用日誌。