温馨提示×

如何配置Linux JS日志记录级别

小樊
45
2025-12-21 05:36:41
栏目: 编程语言

在Linux系统中,配置JavaScript(JS)日志记录级别通常涉及到使用特定的日志库或框架,这些库或框架提供了日志级别的设置功能。以下是一些常见的JavaScript日志库及其配置方法:

1. Winston

Winston是一个流行的Node.js日志库,支持多种传输方式和日志级别。

安装Winston

npm install winston

配置Winston

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info', // 设置默认日志级别
  format: winston.format.json(),
  transports: [
    new winston.transports.Console({
      format: winston.format.simple()
    }),
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

// 设置特定模块的日志级别
logger.level = 'debug';
logger.transports.File.levels = ['debug', 'info', 'warn', 'error'];

2. Morgan

Morgan是一个HTTP请求日志中间件,常用于Express应用。

安装Morgan

npm install morgan

配置Morgan

const express = require('express');
const morgan = require('morgan');

const app = express();

// 设置日志级别
app.use(morgan('combined')); // 默认级别是 'combined'
app.use(morgan('tiny')); // 更简洁的日志格式

// 自定义日志格式和级别
app.use(morgan('combined', {
  skip: (req, res) => {
    return res.statusCode < 400; // 只记录4xx和5xx错误
  }
}));

3. Bunyan

Bunyan是一个结构化日志库,支持多种传输方式和日志级别。

安装Bunyan

npm install bunyan

配置Bunyan

const bunyan = require('bunyan');

const logger = bunyan.createLogger({
  name: 'myApp',
  level: 'info' // 设置默认日志级别
});

// 设置特定模块的日志级别
logger.level = 'debug';

4. Log4js

Log4js是一个灵活的日志库,支持多种传输方式和日志级别。

安装Log4js

npm install log4js

配置Log4js

const log4js = require('log4js');

log4js.configure({
  appenders: {
    out: { type: 'stdout' },
    error: { type: 'file', filename: 'error.log' },
    combined: { type: 'file', filename: 'combined.log' }
  },
  categories: {
    default: { appenders: ['out'], level: 'info' },
    error: { appenders: ['error'], level: 'error' },
    combined: { appenders: ['combined'], level: 'info' }
  }
});

const logger = log4js.getLogger();

总结

配置JavaScript日志记录级别通常涉及到选择合适的日志库,并根据需求设置默认日志级别和特定模块的日志级别。以上示例展示了如何使用Winston、Morgan、Bunyan和Log4js进行日志记录级别的配置。根据你的具体需求选择合适的库并进行相应的配置即可。

0