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

我们为服务器端服务建立了一套记录系统。 具体来说,我们的Django项目大量使用了Python日志记录模块,因此我们的集中式日志记录系统会调用对logger.info()logger.warn()logger.error()调用。

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

  1. 会有某种自定义日志记录对象通过JavaScript公开,它会通过XmlHttpRequest将消息发送到后端。

  2. 我想在客户端具有等效的日志记录级别: debuginfowarningerror

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

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

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

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

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

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

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

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

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

  2. debuginfowarningerror ,以及tracefatal ;

  3. 使用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); } window.onerror = function(msg, file, line) { log.error("Error in " + file + " on line " + line + ": " + msg); }

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

这个想法听起来不错。 只要知道你究竟想要记录客户端并拥有它。

我建议使用log4javascript进行日志记录。 log4 api非常直接。

这是关于这个问题的另一个问题。

一些建议是: log4js , log4javascript和Blackbird 。

FWIW,log4js是那里接受的答案。 我没有任何这些平台的经验,所以我不能真正推荐其中一个。