Для разработчика 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' }) ] });
? Инструмент: Морган
? Описание: Упрощает регистрацию HTTP-запросов в Express.js
? Ключевые особенности:
javascriptCopyconst express = require('express'); const morgan = require('morgan'); const app = express(); app.use(morgan('combined'));
? Инструмент: Буньян
? Описание: Структурированное ведение журнала JSON для приложений Node.js
? Ключевые особенности:
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 Stack
? Описание: Мощная комбинация для управления и анализа журналов
? Ключевые особенности:
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); }
? Инструмент: Новая Реликвия
? Описание: Комплексный мониторинг производительности приложений
? Ключевые особенности:
javascriptCopyconst newrelic = require('newrelic'); newrelic.setTransactionName('myCustomTransaction'); // Your application code here
? Инструмент: Логгли
? Описание: Облачный сервис управления журналами и аналитики
? Ключевые особенности:
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!");
Независимо от того, какой инструмент вы выберете, внедрение структурированного ведения журналов может значительно улучшить ваши возможности анализа журналов:
javascriptCopylogger.info({ event: 'user_login', userId: user.id, timestamp: new Date().toISOString(), ipAddress: req.ip });
Используя эти дополнительные инструменты и методы, вы получите комплексную стратегию ведения журналов, которая охватывает все: от базовой отладки до расширенного мониторинга производительности приложений. Помните, что ключом к эффективному ведению журналов является выбор правильных инструментов для ваших конкретных потребностей и последовательное применение лучших практик по всей вашей кодовой базе.
Если вам нужна помощь в отладке вашего веб-приложения, посетите https://alerty.ai, чтобы узнать больше об простом мониторинге внешнего интерфейса.
Удачного входа в систему, и пусть ваши приложения Node.js работают без сбоев! ??
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3