NestJS loggerについてメモ

Ko Yamaura

nestjsのloggerについて調べたのでメモ

Logger classとは

Nest.jsが提供しているlogging用のclass。ログに色がつき、クラス名がついて装飾される。 @nestjs/commonからimportして利用できる

import { Injectable, Logger } from '@nestjs/common';

@Injectable()
export class UsersService {
  private readonly logger = new Logger(UsersService.name);



  // how to use
  async getUsers(): Promise<User[] | null> {
    this.logger.debug('Show this message as debug log');
    return this.users;
  }

Logger level

ログレベルは以下の表のようになっており、シンプル。

level 説明
log これがよくわからん
error アプリケーションの継続に支障をきたす問題、FATALほどの緊急性はないが対応が必要
warn エラーではない例外的な事象: 廃止予定のAPIの利用など、間違っていないが望ましくない利用
debug システムの動作状況に関する詳細な情報
verbose デバッグ情報よりも詳細なログ

公式側としてもシンプルなもので特段 winstonやogmaの様にパワフルなロギングではないことは把握しているみたい。

あと、正直 .logに関したはどう使っていかわからない。console.logのように開発のデバッグ時のみにとどめるべきなのか、それともinfoのような補助的なログを出力するものなのか。

もう少ししらべて結論を書き足したい。