Node.js 開発者にとって、アプリケーションのデバッグ、監視、保守に関しては、ログ記録がほぼすべてです。しかし、ログ記録のベスト プラクティスを使用していますか? Node.js アプリを次のレベルに引き上げることができるログ記録テクニックをいくつか見てみましょう。
詳細については、ブログ投稿全文をご覧ください。
?ツール: ウィンストン
?説明: Node.js
の多用途ログ ライブラリ
?主な機能:
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' }) ] });
?ツール: モーガン
?説明: Express.js
での HTTP リクエストのログ記録を簡素化します。
?主な機能:
javascriptCopyconst express = require('express'); const morgan = require('morgan'); const app = express(); app.use(morgan('combined'));
?道具:バニヤン
?説明: Node.js アプリケーションの構造化された JSON ロギング
?主な機能:
javascriptCopyconst bunyan = require('bunyan'); const log = bunyan.createLogger({name: "myapp"}); log.info("Hi"); log.warn({lang: 'fr'}, "Au revoir");
?道具:ピノ
?説明: JSON 出力による低オーバーヘッドのロギング
?主な機能:
javascriptCopyconst pino = require('pino'); const logger = pino(); logger.info('hello world'); logger.error('this is at error level');
?ツール: デバッグ
?説明: Node.js
用の小さなデバッグ ユーティリティ
?主な機能:
javascriptCopyconst debug = require('debug')('http'); debug('booting %o', name);
?ツール: 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!");
?ツール: 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) ] });
?ツール: セントリー
?説明: リアルタイムのエラー追跡とパフォーマンス監視
?主な機能:
javascriptCopyconst Sentry = require("@sentry/node"); Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0" }); try { someFunction(); } catch (e) { Sentry.captureException(e); }
?ツール: New Relic
?説明: 包括的なアプリケーションパフォーマンス監視
?主な機能:
javascriptCopyconst newrelic = require('newrelic'); newrelic.setTransactionName('myCustomTransaction'); // Your application code here
?ツール: 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 サイトの他の関連記事を参照してください。