logger-email
基于node+log4js+express+nodemailer+node-schedule 的日志系统
install
npm i logger-email --save
orcnpm i logger-eamil --save
modules
use
1.在入口文件,app.js中使用
app.js
:
1.需要先引入
logger-email/config
,配置log和email的参数; 2.配置完日志和邮箱的参数后,才可以require('logger-email')
,否则配置不生效;
var loggerConfig = require;// 设置日志配置项loggerConfig.setLogConfig; // 设置邮件配置项(如果需要发送邮件)loggerConfig.setEmailConfig
2. 捕获全局异常请求
3.在
app.js
中的全局catch error 方法里捕获异常;
// catch 404 and forward to error handlerapp.use
3. 捕获ejs报错,导致页面空白
var logger = require;var manualLog = logger.getLogger; // 手动输出 app.use
使用模板
logger.template.appJsError(err,req); app.js中捕获异常用 logger.template.emailLogger(object); 调用时会保存日志同时发送邮件到指定的邮箱 logger.template.requestCatchError(object); 请求接口时try catch 到error时使用 logger.template.requestError(object); 请求接口时状态异常使用 logger.template.ejsRenderError(object); ejs 渲染参数出错,导致空白页面时用
格式:
appJsError
/** * @param {Object} err 捕获到的错误信息 * @param {Object} req request */logger.template.appJsError;
requestError
||requestCatchError
||requestError
/** * @param {Number} durTime 接口耗时 * @param {String} method:请求方法 * @param {Object} req:request * @param {String} url: 接口地址或者页面地址 * @param {Object} urlPara:请求参数 * @param {Any} error:error信息 * @param {Any} body:返回数据 */logger.template.requestError;
ejsRenderError
调用这个方法时会发送日志到指定邮箱
/** * @param {String} page 当前渲染ejs模板的模板路径 * @param {Object} req:request * @param {Any} error:error信息 */logger.template.requestError;
输出日志对应关系
level : [trace,debug,info,warn,error,fatal]
默认logger 为 :
var logger = require('logger-email');
-
var errorLog = logger.getLogger('error'); // errorLog.error('logs'); || errorLog.fatal('logs'); 能保存到日志文件
-
var requestLog = logger.getLogger('request'); // requestLog.error('logs'); || requestLog.fatal('logs'); 能保存到日志文件
-
var manualLog = logger.getLogger('manual'); // manualLog.warn('logs'); || manualLog.error('logs');|| manualLog.fatal('logs'); 能保存到日志文件
-
var defaultLog = logger.getLogger('default'); // 只在控制台输出,不保存到日志文件
-
以上
errorLog
,requestLog
,manualLog
会输出日志到对应的文件:errorLog
------------->/defaultlogs/error/error_2018-12-06.log
requestLog
----------->/defaultlogs/request/request_2018-12-06.log
manualLog
------------>/defaultlogs/manual/manual_2018-12-06.log
app.js 完整代码:
var express = require;var path = require;var fs = require;var router = var app = var loggerConfig = require;// 设置日志配置项loggerConfig.setLogConfig; // 设置邮件配置项(如果需要发送邮件)loggerConfig.setEmailConfig
License
logger-email is licensed under the MIT license