コンテンツにスキップ

initLogger

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モジュールで出力したログは、ファンクション詳細画面の [ログ] タブで確認ができます。

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リファレンス

リファレンス