一个记录到我们后端的JavaScript前端日志记录系统?

a p*_*erd 10 javascript jquery logging xmlhttprequest

我们为服务器端服务建立了一个日志记录系统.具体来说,我们的Django项目大量使用Python记录模块,所以来电通话logger.info(),logger.warn()logger.error()得到由我们的集中式日志记录系统接走.

我想在我们的前端有一个等价物,我有一些想法:

  1. 会有某种形式通过JavaScript暴露的自定义日志记录对象的,将发送消息通过XMLHttpRequest来后端.

  2. 我想对客户端等效的日志记录级别:debug,info,warningerror.

  3. 当我们在本地开发(调试模式)时,我希望通过这些日志消息记录到浏览器/ Firebug控制台console.log().

  4. 在生产中,debug应该完全删除消息.

  5. 我记得有一种方法可以捕获所有未捕获的JavaScript异常,因此应该在这个error级别记录这些异常.

  6. 我们已经在使用Google Analytics事件跟踪功能了,对于我们创建的任何系统而言,它都会很好地与之结合.

这是一个好主意吗?你会怎么做?有现有的解决方案吗?

(FWIW,我们在前端使用jQuery.)

更新:简化问题:https://stackoverflow.com/questions/1423267/are-there-any-logging-frameworks-for-javascript

Tim*_*own 13

首先,我编写并维护了log4javascript,所以我在前面宣布我的兴趣.我每天都在工作中使用它,所以我作为用户有一些经验.以下是我将如何处理您的问题,特别是与log4javascript相关的问题:

  1. 使用log4javascript AjaxAppender进行服务器日志记录;

  2. debug,info,warning并且error都支持,以及tracefatal;

  3. 使用a BrowserConsoleAppender登录FireBug或本机浏览器控制台;

  4. 如果您不想从生产代码中删除所有调试日志记录调用,则可以调整记录器的阈值(log.setLevel(log4javascript.Level.ERROR)例如,使用这将抑制优先级小于的所有日志调用ERROR).如果要禁止所有日志记录调用,可以在生产代码中插入log4javascript存根版本.

  5. 您需要编写一些代码来执行此操作window.onerror.就像是window.onerror = function(msg, file, line) { log.error("Error in " + file + " on line " + line + ": " + msg); }

  6. 我不确定您希望如何配合Google Analytics.log4javascript对它没有特别的支持.