logger
Craft Functions では console.log()
をはじめとする console
関係のメソッドは利用できません。代わりに logger
モジュールを使います。
logger
モジュールで出力したログは管理画面の[ログ]タブから確認できます。
Loggerの初期化
MODULESよりinitLogger
を取得したあと、logLevelを指定して実行し、loggerを取得してください。
指定可能なlogLevelは DEBUG
INFO
WARN
ERROR
です。
const { initLogger } = MODULES;
const logger = initLogger({logLevel: 'DEBUG'});
メソッド
以下のメソッドが利用できます。
debug(data, ...args)
log(data, ...args)
warn(data, ...args)
error(data, ...args)
いずれも引数は同じで、出力されるログのログレベルが変わります(INFO, WARNING, ERROR)。
初期化時に指定したlogLevel以上のログしか出力されません。ログレベル未満のメソッドを実行した場合ログ出力もエラーのthrowもされません。
第1引数がエラーオブジェクトの場合および第2引数がある場合、ログ出力はNode.jsの console.log()
と同じ出力になります。それ以外の場合は第一引数をJSON文字列に変換した値が出力されます。
ログの表示
loggerモジュールで出力したログは、ファンクション詳細画面の [ログ] タブで確認ができます。
(2023/03) ログの全文を取得する方法
ログの全文を取得するためには、ログのMessageを全選択します。全選択→コピーでクリップボードにログが保存されます。
Example
export default async function (data, { MODULES }) {
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec));
await sleep(1000)
const {store, initLogger} = MODULES;
const logger = initLogger({logLevel: 'INFO'});
logger.log(data);
logger.warn('warning');
logger.error('error: ', new Error('Error Message')); // console.log('error: ', new Error('Error Message')) と同じ文字列が出力される
};
APIリファレンス
Updated about 1 year ago