Log4js输出JSON日志--Node.js
2020-04-25 08:00
2171 查看
log4js.js配置文件
// log4js.js const log4js = require('log4js') log4js.configure({ appenders: { console:{ type: 'console'}, error: { type: 'dateFile', //日志类型 category: 'errLogger', //日志名称 filename: 'logs/errlog/err', //日志输出位置,当目录文件或文件夹不存在时自动创建 pattern: 'yyyy-MM-dd.log', ////日志输出模式 alwaysIncludePattern: true, maxLogSize: 104800, // 文件最大存储空间 backups: 100 //当文件内容超过文件存储空间时,备份文件的数量 }, response: { type: 'dateFile', category: 'resLogger', filename: 'logs/reqlog/req', pattern: 'yyyy-MM-dd.log', alwaysIncludePattern: true, maxLogSize: 104800, backups: 100, } }, categories: { error: { appenders: ['error'], level: 'error' }, response: { appenders: ['response'], level: 'info' }, default: { appenders: ['response'], level: 'info' } }, replaceConsole: true, pm2: true, //若您的 app 使用了 pm2,则这里必须设置为true,否则日志将不会工作(另外您还得下载 pm2-intercom作为 pm2模块: pm2 install pm2-intercom) }) // let levels = { 'trace': log4js.levels.TRACE, 'debug': log4js.levels.DEBUG, 'info': log4js.levels.INFO, 'warn': log4js.levels.WARN, 'error': log4js.levels.ERROR, 'fatal': log4js.levels.FATAL }; exports.getLogger = function(name) { //name取categories项 return log4js.getLogger(name || 'default') } // 封装响应日志 exports.useLogger = function(app, logger) { //用来与express结合 app.use(log4js.connectLogger(logger || log4js.getLogger('default'), { // format: '[:remote-addr :method :url :status :response-timems][:referrer HTTP/:http-version :user-agent]' //自定义输出格式 })) }
运用:
在需要添加log的页面
const log4js = require('../utils/log4js.js'); //log日志 const logger = log4js.getLogger(''); logger.info({"url":"xxxxx","username":"xxxx"}")
输出的日志格式是JSON
第一种方法:
const log4js = require('log4js') log4js.addLayout('json', function(config) { return function(logEvent) { return JSON.stringify(logEvent) + config.separator; } });
输出:
[2020-04-01T15:25:35.031] [INFO] default - {"url":"xxxxx","username":"xxxx"}"
第二种方法:
安装 log4js-json-layout
npm install log4js-json-layout
在页面中引入并使用
const log4js = require('log4js'); const jsonLayout = require('log4js-json-layout'); log4js.addLayout('json', jsonLayout); log4js.configure({ replaceConsole: true, appenders: { console:{ type: 'console'}, error: { type: 'dateFile', //日志类型 category: 'errLogger', //日志名称 filename: 'logs/errlog/err', //日志输出位置,当目录文件或文件夹不存在时自动创建 pattern: 'yyyy-MM-dd.log', alwaysIncludePattern: true, maxLogSize: 104800, // 文件最大存储空间 backups: 100 ,//当文件内容超过文件存储空间时,备份文件的数量 layout: { type: 'json', separator: ',' } }, response: { type: 'dateFile', category: 'resLogger', filename: 'logs/log', pattern: 'yyyy-MM-dd.log', //日志输出模式 alwaysIncludePattern: true, maxLogSize: 104800, backups: 100, layout: { type: 'json', separator: ',' }, }, }, 、、、、、、
输出
{"startTime":"2020-04-09T03:28:20.866Z","categoryName":"default","level":"INFO","url":"xxxxx","username":"xxxx"}
log4js介绍
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Node.js下Sequelize关闭输出并输入到Log4js日志方法
- Nodejs Express 通过log4js写日志到Logstash(ELK)
- Node.js+express的接口适配get和post并输出json
- node.js用log4js实现日志
- Mac下安装Node.js、测试、输出json
- Node.js+express的get和post输出json
- log4js-Node.js中的日志管理模块使用与封装
- Node.js利用console输出日志文件的方法示例
- log4js-Node.js中的日志管理模块使用与封装【转】
- 改造CDH HDFS服务NameNode,DataNode进程的日志输出格式为Json
- Node.js 日志处理模块log4js
- 项目日志的管理和应用 log4js-Node.js中的日志管理模块使用与封装
- Node.js中Koa2在控制台输出请求日志的方法示例
- log4js-Node.js中的日志管理模块使用与封装
- bunyan(一个用于node.js服务的JSON日志库)
- [乱说]node.js添加log4js日志功能
- node.js express使用log4js记录日志
- 【深入浅出Node.js系列十二】Nodejs日志管理log4js
- Nodejs Express 通过log4js写日志到Logstash(ELK)
- Node.js 日志处理模块log4js