最終更新: a few seconds ago Remove Netlify-related code from main (grafted, HEAD)
Logger
ログ概論
CIRCUS の関係のログは以下のように記録する。いずれも cscore.config.js で出力先を制御できる。
-
circus-libのLogger(後述)経由で記録するログconfig.csCoreDaemonLogger: CS Core Plug-in Job Manager が記録するconfig.apiLogger: circus-api のインスタンスが記録する(未実装)
csCoreDaemonLogger: { type: 'FileLogger', options: { fileName: "/var/circus/logs/cscore-daemon" } // 拡張子は不要 } -
CS のプラグインが出力するログ
config.jobReporter.options.pluinResultDirの内部にジョブ番号ごとのディレクトリに保存される。こちらはプラグインコンテナからの標準出力がパイプされてそのまま記録されるもの。
-
pm2 が記録するログ
config.jobManager.startOptions: ジョブマネージャの標準出力/標準エラー出力を pm2 が記録するもの。上記のcsCoreDaemonLoggerがStdoutLoggerでない限り、ここには最小限の記録しか入らないようにする。
jobManager: { options: { startOptions: { output: '/var/circus/logs/daemon-pm2-output.log', error: '/var/circus/logs/daemon-pm2-error.log' }, checkQueueInterval: 1000 } }
Logger について
@circus-lib/src/logger 内に、Logger インターフェースを実装する以下の 3 種類のロガーがあるので、これを ServiceLoader 経由で作成して使う。Logger 自体は info, error, fatal などのメソッドを実装しているシンプルなもの。
NullLogger: ログを出力せずに捨てるFileLogger: 日付つきのファイルにログを出力するStdoutLogger: 標準出力(オプションで標準エラー出力)にログを出力する
FileLogger / StdoutLogger は内部で winston というロガーライブラリに依存している。
それ以外のログ出力方法(クラウドのログサービスへの接続など)が将来的に欲しくなった場合は適宜 Logger を implement したものを作る。
log4js は使いづらいので廃止。