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

引入依赖

复制代码
npm install log4js

新建配置文件logUtil.js

javascript 复制代码
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中设置全局引用

javascript 复制代码
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文件中通过使用如下方法打印日志了,打印的日志会同时输出在控制台及保存到本地文件夹中

javascript 复制代码
// 不同类型的输出
logger.log('log')
logger.info('info')
logger.error('error')
logger.debug('debug')
logger.warn('warn')
logger.trace('trace')
logger.fatal('fatal')
logger.mark('mark')
javascript 复制代码
// 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('-----------------------------------------------')

效果如下:

相关推荐
前端双越老师6 小时前
我从 0 开发的 AI Agent 智语项目发布了
前端·node.js·agent
kyriewen1 天前
2026 年了,还在用 Node.js?Bun 迁移实战:20 分钟搞定,附踩坑记录
前端·javascript·node.js
donecoding1 天前
3 条命令搞定闭环 Monorepo:Lerna 版本管理 + 拓扑构建 + 自定义分发
前端·前端框架·node.js
Flynt2 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
叫我Paul就好3 天前
尝试 Node 搭建后端-开发框架
node.js
风止何安啊5 天前
网课倍速痛点解决:一套前端代码实现自由控速播放器
前端·javascript·node.js
糖拌西瓜皮5 天前
Node.js核心模块实战:文件、路径、HTTP与流处理
javascript·node.js
糖拌西瓜皮5 天前
Node.js工程化实践:包管理、TypeScript配置与代码质量
typescript·node.js
糖拌西瓜皮5 天前
NestJS入门指南:Java开发者的Spring Boot体验
javascript·node.js
糖拌西瓜皮5 天前
Express框架快速上手:中间件、路由与错误处理
javascript·node.js