要定制 Ubuntu 上 Node.js 應用程序的日志輸出格式,您可以使用以下方法:
winston
和 bunyan
。這些庫提供了豐富的配置選項,可以讓您輕松地定制日志格式。以 winston
為例,首先安裝它:
npm install winston
然后,在您的 Node.js 應用程序中設置自定義日志格式:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `[${timestamp}] ${level.toUpperCase()}: ${message}`;
})
),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
new winston.transports.File({ filename: 'logs/combined.log' }),
],
});
logger.info('Hello, world!');
console
模塊:雖然 console
模塊的定制選項有限,但您仍然可以通過一些技巧來調整日志輸出格式。例如,您可以創建一個自定義的日志函數,用于格式化輸出:function log(level, message) {
const timestamp = new Date().toISOString();
console.log(`[${timestamp}] ${level.toUpperCase()}: ${message}`);
}
log('info', 'Hello, world!');
LOG_FORMAT
的環境變量,并在應用程序中使用它:export LOG_FORMAT='[%d] [%l]: %m%n'
node app.js
然后,在您的 Node.js 應用程序中讀取這個環境變量,并根據其值設置日志格式:
const logFormat = process.env.LOG_FORMAT || '%h %l %u %t "%r" %s %b';
const logger = require('winston');
const transport = new winston.transports.Console({ format: logFormat });
const logger = winston.createLogger({
transports: [transport],
});
這些方法可以幫助您定制 Ubuntu 上 Node.js 應用程序的日志輸出格式。您可以根據自己的需求選擇合適的方法。