首页主机资讯Linux下JS日志格式怎么设置

Linux下JS日志格式怎么设置

时间2025-10-30 14:27:03发布访客分类主机资讯浏览298
导读:在Linux环境下,使用JavaScript(Node.js)时,可以通过多种方式设置日志格式。以下是几种常见的方法: 1. 使用 console.log 和自定义格式 最简单的方法是使用 console.log 并手动拼接字符串来定义日志...

在Linux环境下,使用JavaScript(Node.js)时,可以通过多种方式设置日志格式。以下是几种常见的方法:

1. 使用 console.log 和自定义格式

最简单的方法是使用 console.log 并手动拼接字符串来定义日志格式。例如:

const timestamp = new Date().toISOString();

const logMessage = `[${
timestamp}
    ] [INFO] 这是一条日志信息`;
    
console.log(logMessage);
    

2. 使用第三方日志库

使用成熟的第三方日志库可以更灵活地管理日志格式、级别和输出。以下是一些流行的选择:

a. Winston

Winston 是一个功能强大的日志库,支持多种传输方式和格式化选项。

安装 Winston:

npm install winston

示例代码:

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(),
    // 可以添加更多传输方式,如文件、HTTP等
    // new winston.transports.File({
 filename: 'error.log', level: 'error' }
)
    // new winston.transports.File({
 filename: 'combined.log' }
)
  ]
}
    );
    

logger.info('这是一条信息日志');
    
logger.error('这是一条错误日志');
    

b. Pino

Pino 是一个高性能的日志库,适合需要高吞吐量的应用。

安装 Pino:

npm install pino

示例代码:

const pino = require('pino');

const logger = pino({

  level: 'info',
  transport: {

    target: 'pino-pretty', // 可以使用 pino-pretty 在控制台美化输出
    options: {

      colorize: true
    }

  }

}
    );
    

logger.info('这是一条信息日志');
    
logger.error('这是一条错误日志');
    

注意: 使用 pino-pretty 需要单独安装:

npm install pino-pretty

3. 使用环境变量配置日志格式

可以通过环境变量来动态设置日志格式,增强灵活性。例如,使用 Winston 结合环境变量:

const winston = require('winston');
    

const logFormat = process.env.LOG_FORMAT || 'combined';


const logger = winston.createLogger({

  level: 'info',
  format: winston.format.combine(
    winston.format.timestamp({

      format: 'YYYY-MM-DD HH:mm:ss'
    }
),
    logFormat === 'simple'
      ? winston.format.simple()
      : winston.format.printf(({
 timestamp, level, message }
    ) =>
 {

          return `[${
timestamp}
] [${
level.toUpperCase()}
] ${
message}
    `;

        }
)
  ),
  transports: [
    new winston.transports.Console()
  ]
}
    );
    

logger.info('这是一条信息日志');
    
logger.error('这是一条错误日志');
    

然后,在运行脚本时设置环境变量:

LOG_FORMAT=simple node your_script.js

4. 日志轮转

对于需要长期保存日志的应用,建议使用日志轮转工具,如 winston-daily-rotate-file

安装依赖:

npm install winston winston-daily-rotate-file

示例代码:

const winston = require('winston');

const {
 createLogger, format, transports }
     = winston;
    
const DailyRotateFile = require('winston-daily-rotate-file');


const transport = new DailyRotateFile({

  filename: 'application-%DATE%.log',
  datePattern: 'YYYY-MM-DD-HH',
  zippedArchive: true,
  maxSize: '20m',
  maxFiles: '14d'
}
    );


const logger = createLogger({

  level: 'info',
  format: format.combine(
    format.timestamp({

      format: 'YYYY-MM-DD HH:mm:ss'
    }
),
    format.printf(({
 timestamp, level, message }
    ) =>
 {

      return `[${
timestamp}
] [${
level.toUpperCase()}
] ${
message}
    `;

    }
)
  ),
  transports: [
    transport
  ]
}
    );
    

logger.info('这是一条信息日志');
    
logger.error('这是一条错误日志');
    

总结

根据项目需求选择合适的日志管理方案:

  • 简单应用:使用 console.log 结合自定义格式。
  • 复杂应用:使用 Winston 或 Pino 等第三方库,支持丰富的格式化和传输选项。
  • 长期日志管理:结合日志轮转工具,确保日志文件的可维护性。

通过合理配置日志格式,可以更好地监控和调试应用,提升开发和运维效率。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux下JS日志格式怎么设置
本文地址: https://pptw.com/jishu/738877.html
如何分析Linux下的JS错误日志 如何解读Linux JS日志中的警告

游客 回复需填写必要信息