debian

Debian JS日志格式如何自定义

小樊
45
2025-02-25 16:43:52
栏目: 编程语言

在 Debian 系统中,如果你想要自定义 JavaScript(JS)应用程序的日志格式,通常这取决于你使用的日志库或者框架。以下是一些常见的方法和步骤来自定义 JS 日志格式:

  1. 使用日志库: 如果你的应用程序使用了一个日志库(例如 winstonlog4jsmorgan 等),你可以查阅该库的文档来了解如何自定义日志格式。

    • Winston 示例

      const winston = require('winston');
      
      const logger = winston.createLogger({
        format: winston.format.combine(
          winston.format.timestamp({
            format: 'YYYY-MM-DD HH:mm:ss'
          }),
          winston.format.printf(({ timestamp, level, message }) => {
            return `${timestamp} ${level}: ${message}`;
          })
        ),
        transports: [
          new winston.transports.Console(),
          new winston.transports.File({ filename: 'error.log', level: 'error' }),
          new winston.transports.File({ filename: 'combined.log' })
        ]
      });
      
      logger.info('Hello, world!');
      
    • Log4js 示例

      const log4js = require('log4js');
      
      log4js.configure({
        appenders: {
          out: { type: 'stdout', layout: { type: 'pattern', pattern: '%d{yyyy-MM-dd HH:mm:ss} [%p] %c: %m%n' } }
        },
        categories: {
          default: { appenders: ['out'], level: 'info' }
        }
      });
      
      const logger = log4js.getLogger();
      
      logger.info('Hello, world!');
      
  2. 使用原生 console 对象: 如果你只是想简单地自定义控制台输出的格式,可以使用 JavaScript 的 console 对象结合模板字符串来实现。

    function logCustom(level, message) {
      const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 19);
      console.log(`[${timestamp}] [${level.toUpperCase()}]: ${message}`);
    }
    
    logCustom('info', 'Hello, world!');
    
  3. 配置 Web 服务器日志: 如果你是在 Debian 上运行一个基于 Node.js 的 Web 服务器(例如 Express),并且想要自定义服务器日志格式,可以使用中间件来实现。

    • Express + Morgan 示例
      const express = require('express');
      const morgan = require('morgan');
      
      const app = express();
      
      morgan.token('customFormat', (req, res) => {
        return `${req.method} ${req.url} - ${res.statusCode}`;
      });
      
      app.use(morgan('customFormat'));
      
      app.get('/', (req, res) => {
        res.send('Hello, world!');
      });
      
      app.listen(3000, () => {
        console.log('Server is running on port 3000');
      });
      

通过以上方法,你可以根据自己的需求自定义 JavaScript 应用程序的日志格式。记得根据你使用的具体库或框架查阅相关文档,以获得更详细的配置选项和示例。

0
看了该问题的人还看了