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

https://developers.karte.io/reference/logger