高效管理node.js應(yīng)用日志:winston和winston-daily-rotate-file的日志輪轉(zhuǎn)策略
本文介紹如何使用流行的Node.JS日志庫(kù)winston和winston-daily-rotate-file實(shí)現(xiàn)日志文件輪轉(zhuǎn),有效管理不斷增長(zhǎng)的日志文件。
步驟一:安裝必要的庫(kù)
首先,請(qǐng)確保已安裝winston和winston-daily-rotate-file。使用npm安裝:
npm install winston winston-daily-rotate-file
步驟二:配置日志輪轉(zhuǎn)策略 (logger.js)
創(chuàng)建一個(gè)名為logger.js的文件,包含以下代碼來(lái)配置日志記錄器:
const winston = require('winston'); const { format } = winston; const DailyRotateFile = require('winston-daily-rotate-file'); // 日志格式化 const myFormat = format.combine( format.timestamp({ format: 'yyYY-MM-DD HH:mm:ss' }), format.errors({ stack: true }), format.splat(), format.json() ); // 日志輪轉(zhuǎn)配置 const transport = new DailyRotateFile({ filename: 'logs/application-%DATE%.log', datePattern: 'YYYY-MM-DD', zippedArchive: true, // 壓縮存檔 maxSize: '20m', // 最大文件大小 maxFiles: '14d' // 保留最大天數(shù) }); // 創(chuàng)建winston日志記錄器實(shí)例 const logger = winston.createLogger({ level: 'info', format: myFormat, transports: [transport] }); module.exports = logger;
此配置將日志寫(xiě)入logs目錄(需手動(dòng)創(chuàng)建),每天生成一個(gè)新的日志文件,文件大小限制為20MB,并保留最多14天的日志。 日志采用JSON格式,包含時(shí)間戳和錯(cuò)誤堆棧信息。
步驟三:在應(yīng)用中使用日志記錄器
在你的Node.js應(yīng)用代碼中引入并使用logger實(shí)例:
const logger = require('./logger'); logger.info('應(yīng)用程序啟動(dòng)成功!'); logger.error('發(fā)生錯(cuò)誤:', new Error('這是一個(gè)測(cè)試錯(cuò)誤'));
通過(guò)以上步驟,你的Node.js應(yīng)用將按照配置的策略進(jìn)行日志輪轉(zhuǎn),方便日志管理和問(wèn)題排查。 記得根據(jù)實(shí)際需求調(diào)整maxSize和maxFiles參數(shù)。