基于nodejs的vue项目中使用log4js将日志输入到文件

it2023-02-06  46

一、前言

在项目开发中常需要打印一些log,常规的console.log()只是将信息反映在了浏览器的控制台中,是“一次性”的信息。为了查看历史日志,就需要做日志记录留存。 实际项目是基于nodejs的vue项目,使用的日志记录工具是4.1.0版本的log4js。具体需求是为了记录常规日志,剥离错误日志,在有某些功能运行出错时快速通过记录的日志信息定位问题。

二、实现log4js记录日志(以日期划分日志文件的方式)

1、安装log4js

// 注意:如果只执行npm install XXX,没有指定安装到那种环境下的“后缀”,就会发现node-modules中安装了,但是package.json中没有的情况。 // 1、保存到开发依赖(devDependencies): npm install log4js @4.1.0 --save-dev // 2、保存到生产依赖(dependencies): npm install log4js @4.1.0 --save

2、配置log4js

log4js应用方式类似于一个“公共函数”,需要对其“配置、声明”,由于我要在很多地方使用,所以新建了一个单独的js文件对其进行配置:

// 文件名:log4js.js var log4js = require('log4js'); log4js.configure({ appenders: { production: { type: 'dateFile', // 日志输出类型,dateFile表示输出到文件 filename: 'demo.log', // 输出到文件的文件路径,注意,是路径而不是文件名! alwaysIncludePattern: true, // 日志文件是否展示预设的模式 keepFileExt: true, // 日志文件是否始终保持后缀 daysToKeep: 30, // 日志保存时间,默认值为0,表示一直保存 } }, categories: { default: { appenders: [ 'production' ], level: 'info' } } }); var logger = log4js.getLogger(); // 下面这行代码是测试代码,我将这个js文件引入到了html文件中。如果一切正常,启动项目后你会看到项目根目录下生成了一个类似于名为“demo.2020-10-20.log”的日志文件,里面就有你这行输出的信息。 logger.info('this is a info3');

3、应用

在“2、配置log4js”中定义的logger变量相当于一个“函数名”,当你在全局引入了这个js之后,你就可以在你项目代码的任何地方用

logger.info('XXX');

记录输出你想要的信息到指定的文件中了

三、说明

1、log4js默认的日志级别

all<trace<debug<info<warn<error<fatal<mark<off。当“2、配置log4js”中categories中的level指定为info,只允许输出info级别以上的日志,也就是all、trace、debug三个级别的日志不会被输出。

2、log4js支持的输出形式(类型)

log4js支持多种日志输出形式,打印到控制台、输出到文件、传输到服务器、以邮件形式发送日志等。如:console、dateFile、file、stderr等等。

参考链接 log4js-node log4js日志管理模块配置 log4js 将日志输出到文件

欢迎大家一起讨论、学习。

最新回复(0)