溫馨提示×

Linux JS日志格式標準是什么

小樊
38
2025-04-18 11:34:38
欄目: 編程語言

在Linux系統中,JavaScript(Node.js)日志格式并沒有一個統一的“標準”格式,但是通常會包含一些關鍵的信息,如時間戳、日志級別、消息等。以下是Node.js日志的一些常見格式和特點:

時間戳

日志記錄的時間,通常以ISO 8601格式表示。

日志級別

表示日志的重要性,例如INFO、WARN、ERROR等。

消息

描述日志事件的詳細信息。

示例日志格式

一個典型的Node.js日志示例可能如下所示:

2021-08-15T08:30:00.123Z [INFO] Starting server on port 3000
2021-08-15T08:31:23.456Z [ERROR] Failed to connect to database: Error: connect ECONNREFUSED 127.0.0.1:5432
2021-08-15T08:32:15.789Z [WARN] Low disk space on /data
2021-08-15T08:33:00.123Z [INFO] Server is running at http://localhost:3000

自定義日志格式

開發人員可以使用不同的日志庫來定義和格式化日志輸出。例如,使用 morgan 中間件或 winston 日志庫可以很方便地自定義日志格式。

  • morgan 示例:
const morgan = require('morgan');
const express = require('express');
const app = express();

morgan.token('customFormat', function (req, res) {
  return `{req.method} {req.url} {res.statusCode} {req.ip} - ${req.headers['user-agent']} `;
});

app.use(morgan('customFormat'));

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});
  • winston 示例:
const winston = require('winston');

const customFormat = winston.format.combine(
  winston.format.timestamp(),
  winston.format.printf(({ timestamp, level, message }) => {
    return `${timestamp} ${level} : ${message}`;
  })
);

const logger = winston.createLogger({
  level: 'info',
  format: customFormat,
  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!');
logger.error('Something went wrong!');

通過上述方法,開發人員可以根據具體需求靈活地定義日志格式,以滿足應用程序的日志記錄需求。

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