linux

Linux JS日志格式标准是什么

小樊
39
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 日志库可以很方便地自定义日志格式。

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');
});
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
看了该问题的人还看了