简介
pdlog 是一个基于 Node.js 的轻量级日志库,支持输出多种级别的日志,可以自定义日志格式和日志输出位置,同时也支持日志滚动和压缩。
安装
使用 npm 安装 pdlog:
npm install pdlog --save
使用
初始化
在你的程序中引入 pdlog 并初始化:
-- -------------------- ---- ------- ----- ----- - ----------------- -- --- ----- ------ - ------- ------ ------- -- -------- --------- --------------------- -- ------ ------------ ----------------------- -- --------- --------- ---- -- ---------- ---
以上代码初始化了一个日志实例,输出级别为 info,日志输出路径为 /var/log/myapp.log,日志文件名格式为 {yyyy}-{MM}-{dd}.log,即按照年月日的格式输出日志文件,同时每天压缩一个日志文件。
日志输出
在程序中进行日志输出:
logger.debug('a debug message'); logger.info('an info message'); logger.warn('a warning message'); logger.error('an error message');
自定义日志格式
pdlog 默认的日志格式是 [level] [time] message
,你可以根据需要自定义日志格式:
-- -------------------- ---- ------- ----- ------------ - --------- --------- ---------- -- --- ----- ------ - ------- ------ ------- --------- --------------------- ------------ ----------------------- --------- ----- ------- ------------ --- -- ---- --------------- ---- ------- ---- ------ ---------
自定义日志输出位置
你可以使用 pdlog 提供的 setLogFile
方法来动态改变日志输出位置:
-- -------------------- ---- ------- -- --- ----- ------ - ------- ------ ------- --------- --------------------- ------------ ----------------------- --------- ---- --- -- --------- --------------- ---- ---------- -- -------- ----------------------------------------- -- -------- --------------- ---- ------- ---- --- --- ---- -------
日志滚动
pdlog 支持按照时间或者日志大小进行日志滚动。
按照时间进行日志滚动
// 初始化 const logger = pdlog({ level: 'info', filePath: '/var/log/myapp.log', filePattern: '{yyyy}-{MM}-{dd}.log', rollTime: 'daily', compress: true });
以上代码使用 pdlog 提供的 rollTime
参数来设置日志滚动周期,pdlog 支持的周期包括:
daily
:每天滚动一次;hourly
:在每小时的开始滚动;minutely
:在每分钟的开始滚动。
按照日志大小进行日志滚动
// 初始化 const logger = pdlog({ level: 'info', filePath: '/var/log/myapp.log', fileSize: 1024 * 1024 * 10, // 10MB compress: true });
以上代码设置了日志文件大小为 10MB,当日志文件大小达到 10MB 时会滚动日志文件。pdlog 默认会保留 7 天内的日志文件,可以通过 maxDays
参数来设置保留天数。
结论
pdlog 是一个轻量级的 Node.js 日志库,支持自定义日志格式和输出位置,支持日志滚动和压缩,易于使用和集成到现有的 Node.js 项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600566b481e8991b448e2ff2