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://[email protected]/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 アプリがスムーズに動作しますように! ??
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3