ロガー

ロガーの作成

createLogger()

カスタムロガーを作成します。

シグネチャ

  • createLogger(options: LoggerOptions)

interface LoggerOptions
  extends Omit<winston.LoggerOptions, 'transports' | 'format'> {
  dirname?: string;
  filename?: string;
  format?: 'logfmt' | 'json' | 'delimiter' | 'console' | winston.Logform.Format;
  transports?: ('console' | 'file' | 'dailyRotateFile' | winston.transport)[];
}

詳細

プロパティ説明
dirnameログ出力ディレクトリ
filenameログファイル名
formatログ形式
transportsログ出力方式

createSystemLogger()

規定の方法で出力されるシステム実行ログを作成します。ログ - システムログ を参照してください。

シグネチャ

  • createSystemLogger(options: SystemLoggerOptions)

export interface SystemLoggerOptions extends LoggerOptions {
  seperateError?: boolean; // print error seperately, default true
}

詳細

プロパティ説明
seperateErrorerror レベルのログを個別に(別のファイルなどに)出力するかどうか

requestLogger()

API リクエストとレスポンスのログを記録するミドルウェアです。

app.use(requestLogger(app.name));

シグネチャ

  • requestLogger(appName: string, options?: RequestLoggerOptions): MiddewareType

export interface RequestLoggerOptions extends LoggerOptions {
  skip?: (ctx?: any) => Promise<boolean>;
  requestWhitelist?: string[];
  responseWhitelist?: string[];
}

詳細

プロパティ説明デフォルト値
skip(ctx?: any) => Promise<boolean>リクエストコンテキストに基づいて、特定のログをスキップするかどうかを決定します。-
requestWhiteliststring[]ログに出力するリクエスト情報のホワイトリストです。[ 'action', 'header.x-role', 'header.x-hostname', 'header.x-timezone', 'header.x-locale','header.x-authenticator', 'header.x-data-source', 'referer']
responseWhiteliststring[]ログに出力するレスポンス情報のホワイトリストです。['status']

app.createLogger()

定義

class Application {
  createLogger(options: LoggerOptions) {
    const { dirname } = options;
    return createLogger({
      ...options,
      dirname: getLoggerFilePath(this.name || 'main', dirname || ''),
    });
  }
}

dirname が相対パスの場合、ログファイルは現在のアプリケーション名と同じ名前のディレクトリに出力されます。

plugin.createLogger()

app.createLogger() と同じように使用します。

定義

class Plugin {
  createLogger(options: LoggerOptions) {
    return this.app.createLogger(options);
  }
}

ログ設定

getLoggerLevel()

getLoggerLevel(): 'debug' | 'info' | 'warn' | 'error'

現在システムに設定されているログレベルを取得します。

getLoggerFilePath()

getLoggerFilePath(...paths: string[]): string

現在システムに設定されているログディレクトリを基に、ディレクトリパスを結合します。

getLoggerTransports()

getLoggerTransports(): ('console' | 'file' | 'dailyRotateFile')[]

現在システムに設定されているログ出力方式を取得します。

getLoggerFormat()

getLoggerFormat(): 'logfmt' | 'json' | 'delimiter' | 'console'

現在システムに設定されているログ形式を取得します。

ログ出力

Transports

あらかじめ定義された出力方式です。

  • Transports.console
  • Transports.file
  • Transports.dailyRotateFile
import { Transports } from '@nocobase/logger';

const transport = Transports.console({
  //...
});

関連ドキュメント