アプリケーションコードからカスタムログメッセージやイベントを発行することは、多くの場合便利です。バックグラウンドで送信された送信メールのステータスを追跡する場合でも、アプリケーションコードでconsole.log()
を呼び出すための設定可能な代替手段を探している場合でも同様です。
便宜上、Sailsは内部ロギングインターフェースをsails.log
として公開しています。その使い方は、Nodeのconsole.log()
と意図的に非常に似ていますが、いくつかの追加機能があります。つまり、色付きで接頭辞付きのコンソール出力による複数のログレベルのサポートです。
詳細情報と例についてはsails.log()、設定オプションについてはsails.config.logを参照してください。
以下の各ログメソッドは、コンマで区切られた任意のデータ型の引数を無限に受け付けます。console.log
と同様に、Sailsロガーに引数として渡されたデータは、Nodeのutil.inspect()
を使用して、可読性のために自動的に整形されます。その結果、標準的なNode.jsの規則が適用されます。辞書、エラー、日付、配列、その他のデータ型は、util.inspect()
の組み込みロジックを使用してきれいに表示されます(例:{ pet: { name: 'Hamlet' } }
と表示され、[object Object]
とは表示されません)。また、カスタムinspect()
メソッドを持つオブジェクトをログに記録する場合、ロガーはそのメソッドを自動的に実行し、コンソールに出力された文字列を書き込みます。
"error"ログレベルでstderr
にログ出力を書き込みます。重大なエラーの追跡に役立ちます。
sails.log.error('Sending 500 ("Server Error") response.');
// -> error: Sending 500 ("Server Error") response.
"warn"ログレベルでstderr
にログ出力を書き込みます。サイレントに失敗した操作に関する情報の追跡に役立ちます。
sails.log.warn('File upload quota exceeded for user #%d. Request aborted.', user.id);
// -> warn: File upload quota exceeded for user #94271. Request aborted.
別名 sails.log.debug()
"debug"ログレベルでstderr
にコンソール出力を書き込むデフォルトのログ関数です。チーム間で重要な技術情報をやり取りする場合、またはconsole.log()
の一般的な代替手段として役立ちます。
sails.log('This endpoint (`POST /accounts`) will be deprecated in the next few days. Please use `POST /signup` instead. ');
// -> debug: This endpoint (`POST /accounts`) will be deprecated in the next few days. Please use `POST /signup` instead.
"info"ログレベルでstdout
にログ出力を書き込みます。アプリケーションのビジネスロジックに関する情報を取得するのに役立ちます。
sails.log.info('A new user (', newUser.emailAddress, ') just signed up!');
// -> info: A new user ( [email protected] ) just signed up!
"verbose"ログレベルでstdout
にログ出力を書き込みます。まれな場合にのみ必要なアプリケーションに関する詳細情報を取得するのに役立ちます。
sails.log.verbose('A user (IP adddress: `%s`) initiated an account transfer...', req.ip);
// -> verbose: A user (IP adddress: `10.48.1.191`) initiated an account transfer...
"silly"ログレベルでstdout
にログ出力を書き込みます。診断やトラブルシューティングにのみ役立つアプリケーションに関する技術的な詳細情報を取得するのに役立ちます。
sails.log.silly(
'Successfully fetched Account record for requesting authenticated user (`%d`).',
'Took %dms.', req.param('id'), msElapsed);
// -> silly: Successfully fetched Account record for authenticated user (`49722`). Took 41ms.