node项目中winston日志工具的使用
在开发阶段,我们通常使用console.log方法打印信息的方式来查看代码运行结果,但是在生产环境上,往往这种方法就不再适用,这时我们需要更加专业的日志工具来帮助我们查看代码运行情况。在这里介绍下winston日志工具的使用方法:
1、下载依赖包:
npm i winston --save-dev
2、新建一个logger.js文件,用来自定义我们的日志打印方法:
logger.js
const { createLogger, format, transports } = require('winston'); const fs = require('fs'); require("winston-daily-rotate-file");
// 日志打印输出格式 const customFormat = format.combine( format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), // format.align(), format.colorize(), format.printf((i) => `>${i.level}: ${[i.timestamp]}: ${i.message}\n`), ); // 日志写入文件配置 const defaultOptions = { format: customFormat, datePattern: "YYYY-MM-DD", zippedArchive: false, maxSize: "10m", // maxFiles: "14d", }; // 可以定义多个日志方法 // 方法1:日志输出成文件(每日滚动日志文件) const logger = createLogger({ format: customFormat, transports: [ new transports.DailyRotateFile({ filename: "logs/%DATE%.log", level: "info", ...defaultOptions, }), ] }); // 方法2:日志输出在控制台 const consoleLog = createLogger({ format: customFormat, transports: [new transports.Console()] }); // 导出中间件函数 module.exports = { logger, consoleLog };
3、在需要打印日志的文件中引入logger.js,直接调用日志打印方法,就可以看到日志打印出来了
const { logger, consoleLog } = require('./../logger/logger'); // 调用日志方法 consoleLog.log('info', '控制台输出我的日志'); logger.log('info','文件写入我的日志');
winston日志级别有:
levels: { error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6 }, colors: { error: 'red', warn: 'yellow', info: 'green', http: 'green', verbose: 'cyan', debug: 'blue', silly: 'magenta' }
不同的日志级别对应不同的颜色,使日志更加的生动。