我正在尝试使用Log4Javascript将客户端错误发送到服务器,然后将结果写入文件。我正在使用AjaxAppender尝试将数据发送到服务器。我从一个简单的“ Hello world”开始,看是否可以弄清楚如何接收错误消息,因为该文档的字面意思是“未提供服务器端代码”。
基本上,我对此还比较陌生。一个好的Java程序员,HTML,CSS,Javascript等。但是我最近进入了JSP的世界,我试图用它来接收错误消息,并(现在)将它们打印到调试控制台。
我的index.jsp文件中包含的代码很少。只是一个h1标签,上面写着“ Hello World”,并链接到我的JavaScript和jquery。
我的Javascript如下:
var url = "logger.jsp"; $(function(){ var log = log4javascript.getDefaultLogger(); var ajaxAppender = new log4javascript.AjaxAppender(url); ajaxAppender.addHeader("Content-Type", "application/json"); log.addAppender(ajaxAppender); window.onerror = function(errorMsg, url, lineNumber){ log.fatal("Uncaught error "+errorMsg+" in "+url+", line "+lineNumber); }; log.info("Hello World"); }
而且我不确定如何将数据传递到服务器,所以我决定列出所有属性并从那里开始。到目前为止,我将以下内容作为服务器端代码(logger.jsp):
<%@page import="java.util.*"%> <% for (Enumeration e = session.getAttributeNames(); e.hasMoreElements(); ) { String attribName = (String) e.nextElement(); Object attribValue = session.getAttribute(attribName); System.out.println(attribName+" - "+attribValue); } %>
它将以下内容打印到控制台:
logger - test.Logger@5a5517ef
我已经做了很多Google搜索,但是到目前为止,服务器方面没有任何帮助。我很可能错过了一些东西,因此,如果有人经历过这个问题并且有任何提示,甚至是关于如何从AjaxAppender接收Log4JavaScript消息的非常简单的示例,我将不胜感激!
如果你想发送JSON,使用JsonLayout在AjaxAppender:
JsonLayout
AjaxAppender
var log = log4javascript.getDefaultLogger(); var ajaxAppender = new log4javascript.AjaxAppender(url); var jsonLayout = new log4javascript.JsonLayout(); ajaxAppender.setLayout(jsonLayout); log.addAppender(ajaxAppender); log.info("Hello World");
这将以HTTP表单数据的形式发送日志消息,并带有一个名称/值对,名称/值对的名称为data,其值为日志消息的JSON表示形式。
data
的文档中AjaxAppender对此进行了介绍。