• ..

Slack

    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')
    });