溫馨提示×

Ubuntu Node.js日志中如何實現自定義日志格式

小樊
61
2025-03-03 21:42:21
欄目: 編程語言

在Ubuntu系統中,使用Node.js時,可以通過配置日志庫或者直接在代碼中設置來實現自定義日志格式。以下是兩種常見的方法:

方法一:使用日志庫(如winston

winston是一個流行的Node.js日志庫,可以輕松地實現自定義日志格式。

  1. 安裝winston

    npm install winston
    
  2. 配置winston

    創建一個日志配置文件(例如logger.js),并在其中設置自定義日志格式:

    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: 'logs/error.log', level: 'error' }),
        new winston.transports.File({ filename: 'logs/combined.log' })
      ]
    });
    
    module.exports = logger;
    
  3. 在應用中使用winston

    在你的Node.js應用中引入并使用配置好的logger

    const logger = require('./logger');
    
    logger.info('This is an info message');
    logger.error('This is an error message');
    

方法二:直接在代碼中設置

如果你不想使用第三方庫,可以直接在代碼中設置日志格式。

const fs = require('fs');
const path = require('path');

const logStream = fs.createWriteStream(path.join(__dirname, 'logs/combined.log'), { flags: 'a' });

function log(level, message) {
  const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 19);
  const logEntry = `${timestamp} [${level.toUpperCase()}]: ${message}\n`;
  logStream.write(logEntry);
}

log('info', 'This is an info message');
log('error', 'This is an error message');

總結

以上兩種方法都可以實現自定義日志格式。使用winston庫更加靈活和強大,適合大型應用;而直接在代碼中設置則更加簡單,適合小型應用或快速原型開發。根據你的需求選擇合適的方法即可。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女