zoukankan      html  css  js  c++  java
  • 体检在线Bug/Exception系统

    看了这篇文章的介绍:http://www.csdn.net/article/2013-08-22/2816664-Bugsnag-announces-the-new-Bugsnag-API。我尝试了一下这个bugsnag。他有2个服务,免费的和付费的。免费的只能支持单用户(也就是把错误报告发送到单个用户),每个月只能有2000个exception、exception只能保存1个月。对我来说,也够用了。


    官方提供了教程,集成到nodejs很简单,而且他还提供了expressJs的中间件。写了点代码试了一下。首先要把你的API Key注册(在project settings页面可以看到),其次加入2个中间件,requestHandler和errorHandler,requestHandler好像是针对异步方法的,加了这2个中间件之后,你页面处理函数中的异常(如下面代码中的/nie)就会被捕获,发送到云端,同时你也可以显示发送异常((如下面代码中的/me)

    var express = require('express');
    var routes = require('./routes');
    var user = require('./routes/user');
    var http = require('http');
    var path = require('path');
    
    var bugsnag = require("bugsnag");
    bugsnag.register('XXXXXXXXXXXXXXXXXXXXXX');
    
    var app = express();
    
    // all environments
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    app.use(bugsnag.requestHandler);
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(bugsnag.errorHandler);
    
    // development only
    if ('development' == app.get('env')) {
      app.use(express.errorHandler());
    }
    
    app.get('/', function (req, res) {
        res.render('index', { title: 'Express' });
    });
    app.get('/nie', function handlerUsersReqeust (req, res) {
        throw "NotImplementedException";
    });
    app.get('/me', function handlerUsersReqeust(req, res) {
        bugsnag.notify(new Error("Custom Error", {
            auther: "puncha",
            path: '/me',
            email: 'kk@kk.com'
        }));
    });
    
    
    http.createServer(app).listen(app.get('port'), function(){
      console.log('Express server listening on port ' + app.get('port'));
    });
    


    可以看到,异常已经被服务器端捕获,而且列了出来:



    他的功能不限于此,不过,我也不准备做深入研究了。不过有一个想法,是不是把他的源代码里面的URL替换成我们自己的,然后自己实现一下他的Web Service是不是就能把他搬下来,作为一个私有云的Bug Report系统了?呵呵




  • 相关阅读:
    Tensorflow基础教程4:卷积神经网络(CNN)介绍
    Keras之 cifar10数据集使用keras generator读取、模型训练、预测
    Tensorflow基础教程3:基础示例:多层感知机(MLP)
    Tensorflow基础教程2:Tensorflow模型建立与训练
    Chaquopy中不能导入64位Python训练的机器学习模型
    (转)使用SDWebImage和YYImage下载高分辨率图,导致内存暴增的解决办法
    C/C++ 递归与结束递归
    C/C++ 读取文件16进制格式
    C/C++ 打开外部程序
    C/C++ 遍历托盘图标
  • 原文地址:https://www.cnblogs.com/puncha/p/3876886.html
Copyright © 2011-2022 走看看