Sebagai pembangun Node.js, pengelogan adalah segala-galanya apabila ia melibatkan penyahpepijatan, pemantauan dan penyelenggaraan aplikasi anda. Tetapi adakah anda menggunakan amalan terbaik pembalakan? Mari terokai beberapa teknik pengelogan yang boleh membawa apl Node.js anda ke peringkat seterusnya.
Untuk mengetahui lebih lanjut, anda boleh menyemak catatan blog penuh.
? Alat: Winston
? Penerangan: Pustaka pengelogan serba boleh untuk Node.js
? Ciri Utama:
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' }) ] });
? Alat: Morgan
? Perihalan: Memudahkan pengelogan permintaan HTTP dalam Express.js
? Ciri Utama:
javascriptCopyconst express = require('express'); const morgan = require('morgan'); const app = express(); app.use(morgan('combined'));
? Alat: Bunyan
? Penerangan: Pengelogan JSON berstruktur untuk aplikasi Node.js
? Ciri Utama:
javascriptCopyconst bunyan = require('bunyan'); const log = bunyan.createLogger({name: "myapp"}); log.info("Hi"); log.warn({lang: 'fr'}, "Au revoir");
? Alat: Pino
? Perihalan: Pengelogan overhed rendah dengan output JSON
? Ciri Utama:
javascriptCopyconst pino = require('pino'); const logger = pino(); logger.info('hello world'); logger.error('this is at error level');
? Alat: nyahpepijat
? Penerangan: Utiliti penyahpepijatan kecil untuk Node.js
? Ciri Utama:
javascriptCopyconst debug = require('debug')('http'); debug('booting %o', name);
? Alat: Log4js
? Penerangan: Penukaran rangka kerja log4j kepada JavaScript
? Ciri Utama:
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!");
? Alat: Tindanan ELK
? Penerangan: Gabungan hebat untuk pengurusan log dan analisis
? Ciri Utama:
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) ] });
? Alat: Sentry
? Penerangan: Penjejakan ralat masa nyata dan pemantauan prestasi
? Ciri Utama:
javascriptCopyconst Sentry = require("@sentry/node"); Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0" }); try { someFunction(); } catch (e) { Sentry.captureException(e); }
? Alat: Peninggalan Baharu
? Penerangan: Pemantauan prestasi aplikasi yang komprehensif
? Ciri Utama:
javascriptCopyconst newrelic = require('newrelic'); newrelic.setTransactionName('myCustomTransaction'); // Your application code here
? Alat: Loggly
? Penerangan: Perkhidmatan pengurusan log dan analisis berasaskan awan
? Ciri Utama:
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', "Hello World daripada Node.js!");
Tidak kira alat yang anda pilih, melaksanakan pengelogan berstruktur boleh meningkatkan keupayaan analisis log anda dengan ketara:
javascriptCopylogger.info({ event: 'user_login', userId: user.id, timestamp: new Date().toISOString(), ipAddress: req.ip });
Dengan menggunakan alatan dan amalan tambahan ini, anda akan mempunyai strategi pengelogan komprehensif yang merangkumi segala-galanya daripada penyahpepijatan asas kepada pemantauan prestasi aplikasi lanjutan. Ingat, kunci kepada pengelogan yang berkesan ialah memilih alatan yang sesuai untuk keperluan khusus anda dan menerapkan amalan terbaik secara konsisten di seluruh pangkalan kod anda.
Jika anda memerlukan bantuan menyahpepijat apl web anda, lihat https://alerty.ai untuk mengetahui lebih lanjut tentang pemantauan bahagian hadapan yang mudah.
Selamat mengelog dan semoga apl Node.js anda berjalan lancar! ??
Atas ialah kandungan terperinci Log Amalan Terbaik Untuk Apl Node.js Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!