Debian 环境下 JavaScript 日志性能优化
一 核心优化策略
二 快速落地配置
// 安装:npm i pino pino-pretty
const pino = require('pino');
const logger = pino({
level: process.env.LOG_LEVEL || 'info', // 运行时可动态调整
transport: process.env.NODE_ENV === 'development'
? { target: 'pino-pretty', options: { colorize: true } }
: undefined, // 生产:JSON 输出,便于采集与检索
// 可选:开启缓冲/批量(具体取决于传输/目标)
});
logger.info({ path: '/health' }, 'request completed');
logger.error({ err: err }, 'unexpected error');
# .env 或环境
LOG_LEVEL=info
// 代码
const logger = require('pino')({ level: process.env.LOG_LEVEL || 'info' });
// ecosystem.config.js
module.exports = {
apps: [{
name: 'my-app',
script: 'app.js',
env: { NODE_ENV: 'development', LOG_LEVEL: 'debug' },
env_production: { NODE_ENV: 'production', LOG_LEVEL: 'info' }
}]
};
/path/to/your/logs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
copytruncate # 适用于持续写入的文件句柄场景
}
说明:开发环境可用 pino-pretty 提升可读性;生产环境建议直接写 JSON 并通过管道/采集器送入 ELK/Fluentd 等系统,便于查询与聚合。
三 查询与读取加速
四 监控与维护
五 场景化建议