当前位置: 首页 > news >正文

超简单的nodejs使用log4js保存日志到本地(可直接复制使用)

引入依赖

npm install log4js

新建配置文件logUtil.js

const log4js = require('log4js');// 日志配置
log4js.configure({appenders: {// 控制台输出consoleAppender: { type: 'console' },// 文件输出fileAppender: {type: 'dateFile',filename: './logs/default',  //日志文件的存储名alwaysIncludePattern: true,  //(可选,默认false)将模式包含在当前日志文件的名称以及备份中pattern: "yyyy-MM-dd.log",encoding: 'utf-8', //(可选,默认为utf-8)文件数据的存储编码maxLogSize: 1024 * 1024 * 1 // 文件最大存储空间}},categories: {// 设置默认所有日志都记录default: { appenders: ['consoleAppender', 'fileAppender'], level: 'all' } }
});module.exports = log4js

在服务文件index.js中设置全局引用

const log4js = require('../utils/logUtil')// 引入log4js配置,初始化全局对象
const logger = log4js.getLogger('default'); // 使用默认类别
global.logger = logger // 赋值给全局对象【logger】,也可以直接替换【console】
// global.console = logger// 捕获未抓捕的异常,例如进程突然挂掉时的报错
process.on('uncaughtException', function (err) {logger.error(err.stack) // 保存错误的调用栈
});

 然后就可以在所有js文件中通过使用如下方法打印日志了,打印的日志会同时输出在控制台及保存到本地文件夹中

// 不同类型的输出
logger.log('log')
logger.info('info')
logger.error('error')
logger.debug('debug')
logger.warn('warn')
logger.trace('trace')
logger.fatal('fatal')
logger.mark('mark')
// object类型的输出,可以使用【JSON.stringify(obj, null, 2)】的格式来输出
logger.error('------------------login fail-------------------')
logger.error('result : \n' + JSON.stringify(obj, null, 2))
logger.error('message : ' +  message)
logger.error('time : ' + nowTime)
logger.error('-----------------------------------------------')

 效果如下:

http://www.lryc.cn/news/386436.html

相关文章:

  • Python面试宝典第1题:两数之和
  • fastapi集成jwt
  • 自定义一个背景图片的高度,随着容器高度的变化而变化,小于图片的高度时裁剪,大于时拉伸100%展示
  • iPhone怎么恢复删除的数据?几款顶级iPhone数据恢复软件
  • macOS 上或linux安装 Jenkins
  • axios发送数据的几种方式
  • 示例:WPF中推荐一个Diagram开源流程图控件
  • 离线安装kubesphere-详细操作,以及报错
  • Python Coala库:代码质量检查与自动化修复的利器
  • MyBatis(12)MyBatis 映射文件中的 resultMap
  • C语言从入门到进阶(15万字总结)
  • Java---Maven详解
  • 服务器日志事件ID4107:从自动更新 cab 中提取第三方的根目录列表失败,错误为: 已处理证书链,但是在不受信任提供程序信任的根证书中终止。
  • 【高级篇】MySQL集群与分布式:构建弹性和高效的数据服务(十四)
  • vue3 学习记录
  • spring boot jar 启动报错 Zip64 archives are not supported
  • BASH and SH in SHELL scripts
  • Qt Creator创建一个用户登录界面
  • 等保测评练习卷14
  • 学懂C#编程:常用高级技术——学会C#多线程开发(三):学会线程池的使用
  • maven-gpg-plugin插件
  • Linux——echo命令,管道符,vi/vim 文本编辑器
  • CISCN--西南半决赛--pwn
  • DIYGW UniApp低代码可视化平台:高效、灵活、安全的应用开发新途径
  • Python爬虫技术及其原理探秘
  • 堆和栈的区别及应用场景
  • vant的dialog触发了其他overlay
  • Linux驱动开发笔记(十二)并发与竞争
  • 【Mac】Listen 1 for Mac(最强的音乐搜索工具)软件介绍
  • nginx 1024 worker_connections are not enough while connecting to upstream