在 Node.js 中,可以使用第三方庫 winston
或內置的 console
模塊來配置日志輸出格式。下面分別介紹這兩種方法。
首先,需要安裝 winston
:
npm install winston
然后,創建一個日志配置文件(例如:logger.js
):
const { createLogger, format, transports } = require('winston');
const logger = createLogger({
level: 'info',
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.printf(({ timestamp, level, message }) => {
return `[${timestamp}] ${level.toUpperCase()}: ${message}`;
})
),
transports: [
new transports.Console(),
new transports.File({ filename: 'logs/error.log', level: 'error' }),
new transports.File({ filename: 'logs/combined.log' })
]
});
module.exports = logger;
在這個例子中,我們配置了日志的時間戳格式、日志級別和日志輸出格式。同時,我們將日志輸出到控制臺和兩個不同的文件中。
接下來,在需要使用日志的地方引入 logger.js
:
const logger = require('./logger');
logger.info('This is an info message');
logger.error('This is an error message');
Node.js 的內置 console
模塊也支持自定義日志輸出格式。例如:
function logInfo(message) {
console.log(`[${new Date().toISOString()}] INFO: ${message}`);
}
function logError(message) {
console.error(`[${new Date().toISOString()}] ERROR: ${message}`);
}
logInfo('This is an info message');
logError('This is an error message');
在這個例子中,我們定義了兩個函數 logInfo
和 logError
,分別用于輸出信息和錯誤日志。我們使用 Date
對象來生成時間戳,并自定義了日志輸出格式。
這兩種方法都可以實現自定義 Node.js 日志輸出格式。你可以根據自己的需求選擇合適的方法。