ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js アプリのログ記録のベスト プラクティス

Node.js アプリのログ記録のベスト プラクティス

WBOY
リリース: 2024-08-10 06:38:22
オリジナル
693 人が閲覧しました

Logging Best Practices For Your Node.js App

Node.js 開発者にとって、アプリケーションのデバッグ、監視、保守に関しては、ログ記録がほぼすべてです。しかし、ログ記録のベスト プラクティスを使用していますか? Node.js アプリを次のレベルに引き上げることができるログ記録テクニックをいくつか見てみましょう。

詳細については、ブログ投稿全文をご覧ください。

1. ウィンストン:伐採のスイスアーミーナイフ

?ツール: ウィンストン
?説明: Node.js
の多用途ログ ライブラリ ?主な機能:

  • 複数のトランスポート オプション (コンソール、ファイル、データベース)
  • カスタマイズ可能なログレベル
  • さまざまな形式 (JSON、プレーンテキスト) でのログ記録をサポート
javascriptCopyconst winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});
ログイン後にコピー

2. Morgan: HTTP リクエスト ロガー ミドルウェア

?ツール: モーガン
?説明: Express.js
での HTTP リクエストのログ記録を簡素化します。 ?主な機能:

  • 事前定義されたログ形式
  • カスタムトークンのサポート
  • Express.js との簡単な統合
javascriptCopyconst express = require('express');
const morgan = require('morgan');

const app = express();
app.use(morgan('combined'));
ログイン後にコピー

3. Bunyan: Node.js の JSON ロギング

?道具:バニヤン
?説明: Node.js アプリケーションの構造化された JSON ロギング
?主な機能:

  • デフォルトの JSON ログ形式
  • 子ロガーをサポートします
  • ログを表示するための組み込み CLI
javascriptCopyconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});

log.info("Hi");
log.warn({lang: 'fr'}, "Au revoir");
ログイン後にコピー

4. Pino: 超高速 Node.js ロガー

?道具:ピノ
?説明: JSON 出力による低オーバーヘッドのロギング
?主な機能:

  • 非常に高速なパフォーマンス
  • 自動ログローテーション
  • 子ロガーをサポートします
javascriptCopyconst pino = require('pino');
const logger = pino();

logger.info('hello world');
logger.error('this is at error level');
ログイン後にコピー

5. debug: 小さなデバッグユーティリティ

?ツール: デバッグ
?説明: Node.js
用の小さなデバッグ ユーティリティ ?主な機能:

  • 軽量で使いやすい
  • 名前空間を使用した選択的デバッグ
  • ブラウザのサポート
javascriptCopyconst debug = require('debug')('http');

debug('booting %o', name);
ログイン後にコピー

6. Log4js: JavaScript の柔軟なログ記録

?ツール: Log4js
?説明: log4j フレームワークの JavaScript への変換
?主な機能:

  • 階層的なログレベル
  • 複数の出力アペンダ
  • 設定可能なレイアウト
javascriptCopyconst log4js = require("log4js");
log4js.configure({
  appenders: { cheese: { type: "file", filename: "cheese.log" } },
  categories: { default: { appenders: ["cheese"], level: "error" } }
});

const logger = log4js.getLogger("cheese");
logger.error("Cheese is too ripe!");
ログイン後にコピー

7. Elasticsearch、Logstash、Kibana (ELK スタック)

?ツール: ELK スタック
?説明: ログ管理と分析のための強力な組み合わせ
?主な機能:

  • 集中ログ
  • リアルタイムログ分析
  • ビジュアライゼーションとダッシュボード
javascriptCopyconst winston = require('winston');
const Elasticsearch = require('winston-elasticsearch');

const esTransportOpts = {
  level: 'info',
  clientOpts: { node: 'http://localhost:9200' }
};
const logger = winston.createLogger({
  transports: [
    new Elasticsearch(esTransportOpts)
  ]
});
ログイン後にコピー

8. Sentry: エラー追跡とパフォーマンス監視

?ツール: セントリー
?説明: リアルタイムのエラー追跡とパフォーマンス監視
?主な機能:

  • 自動エラーキャプチャ
  • リリース追跡
  • パフォーマンスの監視
javascriptCopyconst Sentry = require("@sentry/node");

Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0" });

try {
  someFunction();
} catch (e) {
  Sentry.captureException(e);
}
ログイン後にコピー

9. New Relic: アプリケーションのパフォーマンス監視

?ツール: New Relic
?説明: 包括的なアプリケーションパフォーマンス監視
?主な機能:

  • リアルタイムのパフォーマンス指標
  • エラー分析
  • カスタムインスツルメンテーション
javascriptCopyconst newrelic = require('newrelic');

newrelic.setTransactionName('myCustomTransaction');
// Your application code here

ログイン後にコピー

10. Loggly: クラウドベースのログ管理

?ツール: Loggly
?説明: クラウドベースのログ管理および分析サービス
?主な機能:

  • ログの一元管理
  • リアルタイムのログ検索と分析
  • カスタム ダッシュボードとアラート
javascriptCopyconst winston = require('winston');
const { Loggly } = require('winston-loggly-bulk');

winston.add(new Loggly({
    token: "YOUR-TOKEN",
    subdomain: "YOUR-SUBDOMAIN",
    tags: ["Winston-NodeJS"],
    json: true
}));
ログイン後にコピー

winston.log('info', "Node.js から Hello World!");

おまけのヒント: 構造化ロギング

選択したツールに関係なく、構造化ログを実装すると、ログ分析機能が大幅に向上します。

javascriptCopylogger.info({
  event: 'user_login',
  userId: user.id,
  timestamp: new Date().toISOString(),
  ipAddress: req.ip
});
ログイン後にコピー

これらの追加ツールとプラクティスを使用すると、基本的なデバッグから高度なアプリケーション パフォーマンス監視までのすべてをカバーする包括的なログ戦略が得られます。効果的なロギングの鍵は、特定のニーズに適したツールを選択し、コードベース全体にベスト プラクティスを一貫して適用することであることを忘れないでください。

Web アプリのデバッグにサポートが必要な場合は、https://alerty.ai を参照して、簡単なフロントエンド監視の詳細を確認してください。

ロギングを成功させ、Node.js アプリがスムーズに動作しますように! ??

以上がNode.js アプリのログ記録のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート