内容简介:第一次写node项目,之前除了前端的脚手架构建接触过一些简单的,所以总是碰到很多坑。比如权限验证,比如异常处理,比如日志管理。在看log4js使用方法的时候突然想到自己就可以实现简单的业务,不需要借助组件,虽然简单但是实现了挺开心的。自己的node项目写了一段时间了,但一直没有加上日志管理的功能,因为觉得没必要,很多时候都是在自己电脑上面调试的。
第一次写node项目,之前除了前端的脚手架构建接触过一些简单的,所以总是碰到很多坑。比如权限验证,比如异常处理,比如日志管理。
在看log4js使用方法的时候突然想到自己就可以实现简单的业务,不需要借助组件,虽然简单但是实现了挺开心的。
为什么需要日志管理
自己的node项目写了一段时间了,但一直没有加上日志管理的功能,因为觉得没必要,很多时候都是在自己电脑上面调试的。
但突然有一天在线上访问自己的项目,发现页面报错了,想知道为什么报错了,发现竟然没有什么很好的方法,如果我没有通过一个东西去记录的话,所以日志管理这个时候就显得尤为重要了。
日志的产生过程
- 页面出现错误
- 根据错误类型创建日志文件
- 写入错误信息
创建日志方法的实现
- 先判断要写入的路径是否存在,不存在则创建
- 判断日志要创建在的文件夹存不存在,不存在则创建
- 判断当前要创建的日志存不存在,存在继续写入,不存在则创建并写入
fs.stat
检查路径是否存在
fs.mkdir
创建目录的方法
fs.readFile
读取文件的方法
fs.writeFile
写入文件的方法
完成的写入日志函数
我的业务是定义了两个类型,错误和sql,然后传入日志内容
/**
* 写入日志
* @param {String} type // 日志类型 err 错误日志 sql sql日志
* @param {String} content
*/
writeLog (content, type = 'err') {
// 创建不存在的文件夹
await this.dirExists(`log/file/${type}`)
// 获取到文件files
fs.readFile(`log/file/${type}/${utils.switchTime(new Date(), 'YYYY-MM-DD')}.log`, (err, data) => {
if (err) {
console.log(err)
}
// 写入文件
fs.writeFile(`log/file/${type}/${utils.switchTime(new Date(), 'YYYY-MM-DD')}.log`, `${data || ''}\n${content}`, async (err) => {
if (err) {
console.log(err)
}
})
})
}
使用
在 sql 执行函数上使用
function query (sql) {
// 写入sql
NodeLog.writeLog(sql, 'sql')
return new Promise((resolve, reject) => {
pool.getConnection((err, conn) => {
if (err) {
// 如果是连接断开,自动重新连接
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
setTimeout(query(), 2000);
reject('断开重连');
} else {
console.error(err.stack || err);
reject(err);
}
} else {
// 得到结果
conn.query(sql, (queryErr, result) => {
if (queryErr) {
reject(queryErr);
} else {
resolve(result);
}
// 释放连接
conn.release();
})
}
})
})
}
在异常处理函数中使用
handleException (req, res, e) {
// 写入日志
NodeLog.writeLog(e)
res.json({
code: e.errno || 20501,
success: false,
content: e,
message: '服务器内部错误'
})
}
最后
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人工智能+:AI与IA如何重塑未来
[美]韩德尔·琼斯(Handel Jones) [中]张臣雄 / 机械工业出版社 / 2018-10 / 55.00
当深度学习模型引发了全世界对人工智能的再次关注时,人工智能迎来第三次高速增长,人工智能(AI)、增强现实(AR)和虚拟现实(VR)正把人类带向新的“智能增强时代”(IA),我们将在不知不觉中接纳机器智能。 针对人类社会长期存在的众多复杂的动态的难题,人机融合智能将会提供全新的解决方案,谷歌、Facebook、微软、亚马逊、腾讯、阿里巴巴、百度等平台巨头纷纷斥千亿巨资布局人工智能的尖端技术;智......一起来看看 《人工智能+:AI与IA如何重塑未来》 这本书的介绍吧!