美文网首页
关于NodeJs服务端请求错误日志的记录

关于NodeJs服务端请求错误日志的记录

作者: calvinxiao | 来源:发表于2015-08-30 00:40 被阅读0次

目前的服务端错误处理

服务端使用NodeJs的restify作为app的rest服务接口,用restify的好处是没有太多框架的东西,能更好的控制服务端的代码逻辑。

关于错误日志记录,目前是使用在route的handler里面使用try catch,如果不这样做的话服务端的错误就会暴露给客户端,从安全和体验的角度上看都是不友好的。不没有捕获的错误restify是会这样处理的:

res.send(err); //在中间件中调用next(err)是一样的效果

目前项目使用log4j记录日志,一般用法是:

var logger = getLogger('requestUrl')
logger.warn(err.stack);

除了出错信息,还带上了初始化logger时的信息requestUrl,当然信息可以自定义,例如来自某某操作的日志

不足之处

  1. 代码冗余(业务分散),例如每个handler里面都要require logger,都要实行try catch机制。
  2. 日志信息不全,缺少请求对象的详细信息

更好的错误日志处理方案

先看看restify的文档

http://mcavage.me/node-restify/#server-api-2

文档中给出了各种事件,下面代码就用uncaughtException为例子说明如何更好的处理错误, 例子吧当前请求的路径和错误都打印出来,还可以吧请求对象保存起来,放在MongoDB里面瞬间查找高大上了有没有。。。

server.on('uncaughtException', function (req, res, route, err) {
    console.log(route);     // log the route, woo...
    console.log(err.stack); // log the error
    var message = 'WTF';
    if (err instanceof MyError) {
        message = err.message; // custom output message, cool
    }
    res.send(400, { message: message }); // status code can depend on the Error Type
});

完整代码请参考
https://gist.github.com/calvinxiao/ada4a6f4314acd984246

相关文章

  • 关于NodeJs服务端请求错误日志的记录

    目前的服务端错误处理 服务端使用NodeJs的restify作为app的rest服务接口,用restify的好处是...

  • Node零基础入门到服务端程序 -- 第七章

    第七章 日志及报错 当有请求进入服务端的时候,通常需要把请求记录日志记录下来,这样方便在以后的项目维护过程中查找...

  • nodejs操作mysql

    思路。就是在nodejs中,因为我们的目的是客户端发出请求,nodejs服务端需要根据这个请求,返回json数据。...

  • [转]Web应用上线之前程序员应该了解的技术细节

    开发 记录UI错误日志JavaScript 允许捕获异常。这些异常需要通过Ajax请求提交到日志服务,否则很难截获...

  • 6.日志记录

    一、概述 日志记录默认采用log4net,服务端,客户端都可以做日志记录。 二、使用 2.1服务端日志记录,代码如...

  • 第5篇:Web日志分析

    ox01 Web日志 web服务器日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过Web日志可以...

  • 常见响应状态码

    1开头请求已接收继续处理中 2开头请求成功 3开头请求重定向 4开头客户端错误 请求错误 5开头服务端错误 服务器...

  • Android 日志记录小优化

    0 背景现状 APP 当中有这样的场景:记录错误、警告错误日志至本地文本,如用户支付失败、H5 内容加载失败、请求...

  • 守护NodeJS进程和记录错误日志

    现 在已经基本上解决了Node.JS因异常而崩溃的问题,不过任何平台都不是100%可靠的,还有一些错误是从Node...

  • IOException: unexpected end of s

    项目中使用的是Retorfit+Rxjava网络请求,请求登录接口请求不通,但是服务端并没有接到任何请求日志,看了...

网友评论

      本文标题:关于NodeJs服务端请求错误日志的记录

      本文链接:https://www.haomeiwen.com/subject/jdgkcttx.html