Linux下JS日志格式怎么设置
导读:在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
