阅读量:72
在Linux系统中,自定义Node.js日志格式可以通过多种方式实现。以下是一些常见的方法:
方法一:使用morgan中间件
morgan是一个流行的HTTP请求日志中间件,可以轻松自定义日志格式。
-
安装
morgan:npm install morgan -
在Node.js应用中使用
morgan:const express = require('express'); const morgan = require('morgan'); const app = express(); // 自定义日志格式 morgan.token('customFormat', function (req, res) { return `${req.method} ${req.url} - ${res.statusCode} ${req.ip} - ${new Date().toISOString()}`; }); app.use(morgan('customFormat')); app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
方法二:使用winston日志库
winston是一个功能强大的日志库,支持多种传输方式和自定义格式。
-
安装
winston:npm install winston -
配置
winston日志格式:const winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf(({ timestamp, level, message }) => { return `${timestamp} [${level.toUpperCase()}]: ${message}`; }) ), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ] }); logger.info('Hello World!');
方法三:使用pino日志库
pino是一个高性能的日志库,支持结构化日志和自定义格式。
-
安装
pino:npm install pino -
配置
pino日志格式:const pino = require('pino'); const prettyPrint = require('pino-pretty'); const logger = pino({ level: 'info', transport: { target: 'pino-pretty', options: { colorize: true } } }); logger.info('Hello World!');
方法四:使用log4js日志库
log4js是一个灵活的日志库,支持多种输出方式和自定义格式。
-
安装
log4js:npm install log4js -
配置
log4js日志格式:const log4js = require('log4js'); log4js.configure({ appenders: { out: { type: 'stdout', layout: { type: 'pattern', pattern: '%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n' } } }, categories: { default: { appenders: ['out'], level: 'info' } } }); const logger = log4js.getLogger(); logger.info('Hello World!');
通过以上方法,你可以根据自己的需求自定义Node.js日志格式。选择适合你项目的日志库和配置方式,可以更好地管理和分析日志信息。