Logger パッケージである Signale の使い方

基本

デフォルトタイプ

最初から以下タイプが定義されてるので、足りてるならsignale[TYPE]('メッセージ')の形で即使うだけです。

  • await
  • complete
  • error
  • debug
  • fatal
  • fav
  • info
  • note
  • pause
  • pending
  • star
  • start
  • success
  • warn
  • watch
  • log

以下はCLIでの使用例です。

const signale = require('signale');

const yargs = yargs.xxx(/* ... */);
// 引数情報表示
signale.info(`Port: ${argv.port}`);
// サーバー起動処理
signale.start('Server'));
// App起動処理
signale.start('App');
// ℹ  info      Port:  33322
// ▶  start     Server
// ▶  start     App

カスタムタイプ

SignaleClass をインポートして、自分用に作る必要があります。

const {Signale} = require('signale');

const signale = new Signale({
  types: {
    sake: {
      color: 'green',
      badge: '🍶',
      label: 'sake'
    }
  }
});
signale.sake('Kokuryu');
// 🍶  sake      Kokuryu

補足情報をつける

スコープ、

const appLogger = signale.scope('cli:app');
appLogger.start('listen');
// [cli:app] › ▶  start     listen

や現在のファイル名、

signale.config({displayFilename: false});
// [cli.js] › ✔  success   foo

またdisplayDateで年月日、displayTimestampで時分秒を出したりできます。

ログを表示しないようにする

開発中だけ出したいとかあると思います。
これは設定のstream/dev/nullに書き込むようにするとすべて捨てる事ができます。(以下はdev-nullパッケージを使ってます)

const devnull = require('dev-null');
const signale = new Signale({stream: devnull()});

一部だけ消したい時は各typesで設定する必要があります。例えば、「debugタイプ捨ててぇ」時

const devnull = require('dev-null');
const signale = new Signale({
  types: {
    debug: {
      stream: [devnull()]
    }
  }
});

👦🏻「ログファイルに出してぇ」

const signale = new Signale({
  stream: require('fs').createWriteStream('/tmp/foo.log')
});