parrot-loggerを作った

自分用にLoggerライブラリを作成した。

  • ログファイルへの記録
  • 色付き、現在の時刻を表示
    • 自分で色の変更や、フォーマットを書き換えることもオプションでできる

# コンソール

コンソール

コンソールはデフォルトのオプションだと上の画像のような感じだが、気に入らない場合は自分で色を変えることができる。

そして、デフォルトではデバック情報はコンソールに出力しない。

# ログファイル

ログファイル

ログファイルへログを書き込むこともできる。

デバッグ情報はコンソールには出力されないけど、ログファイルには記録されるようになっている。

# オプション

export type LoggerType = 'INFO' | 'WARN' | 'ERROR' | 'DEBUG'

export interface ColorOptions {
  background: string,
  backgroundText: string,
  text: string
}

export interface ConsoleOptions {
  logging?: boolean,
  type?: Partial<Record<LoggerType, boolean>>,
  color?: Partial<Record<LoggerType, Partial<ColorOptions>>>
}

export interface FileLogging {
  logging?: boolean,
  filePath?: string,
  type?: Partial<Record<LoggerType, boolean>>
}

export interface LoggerOptions {
  timestamp?: string,
  console?: ConsoleOptions,
  file?: FileLogging
}

const defaultOptions: DeepRequired<LoggerOptions> = {
  timestamp: 'YYYY/MM/DD HH:mm:ss.SSS',
  console: {
    logging: true,
    type: {
      INFO: true,
      WARN: true,
      ERROR: true,
      DEBUG: false
    },
    color: {
      INFO: {
        text: '#fff',
        background: '#1565c0',
        backgroundText: '#cccccc'
      },
      WARN: {
        text: '#ffb04c',
        background: '#ff833a',
        backgroundText: '#cccccc'
      },
      ERROR: {
        text: '#f44336',
        background: '#f44336',
        backgroundText: '#cccccc'
      },
      DEBUG: {
        text: '#9e9e9e',
        background: '#707070',
        backgroundText: '#cccccc'
      }
    }
  },
  file: {
    logging: false,
    filePath: path.join(path.resolve(process.cwd()), 'program.log'),
    type: {
      INFO: true,
      WARN: true,
      ERROR: true,
      DEBUG: true
    }
  }
}

# サンプルコード

import { Logger } from 'parrot-logger'

const logger = new Logger()

logger
  .info('インフォメーション')
  .warn('警告')
  .error(new Error('エラー'))
  .debug('デバッグ(オプションで表示するように指定しない限りfalseのときには表示されない)')

# リンク