Log4JavaScript服务器端接收

时间:2014-07-28 16:51:32

标签: javascript html ajax jsp log4javascript

我尝试使用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消息的例子,我将非常感激!

1 个答案:

答案 0 :(得分:2)

如果您想发送JSON,请在AjaxAppender中使用JsonLayout

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表示。

documentation for AjaxAppender

中介绍了这一点