Log4JavaScript服务器端接收 [英] Log4JavaScript server-side receiving

查看:114
本文介绍了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 + - + attribVal UE);
}
%>

将以下内容输出到控制台:

  logger  -  test.Logger@5a5517ef 

我已经做了很多谷歌搜索,但到目前为止没有提供任何与服务器端有关的帮助。我很可能错过了一些东西,所以如果有人经历过这个,并且有任何提示,甚至是一个非常简单的例子,那就是如何从AjaxAppender接收Log4JavaScript的消息,我将不胜感激!

$ b $如果您想发送JSON,请使用解决方案

AjaxAppender 中的nofollow> 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表示。 AjaxAppender 的文档。


I'm trying to use Log4Javascript to send client-side errors to the server where results can then be written to file. I'm using the AjaxAppender to try to send the data to the server. I started with a simple "Hello world" to see if I can figure out how to receive error messages because the documentation literally says "no server-side code is provided".

Basically, I'm relatively new to this. A good Java programmer, HTML, CSS, Javascript, etc. But I've recently dived into the world of JSP and I was trying to use that to receive the error messages and (for now) print them to the debug console.

I have minimal code in my index.jsp file. Just an h1 tag that says "Hello World" and links to my javascript and jquery.

My Javascript is as follows:

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");
}

And I wasn't sure how the data would be passed to the server so I decided to list all attributes and start there. So far, I have the following as server-side code (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);
}
%> 

Which prints the following to the console:

logger - test.Logger@5a5517ef

I've done a lot of Google searches but came up with nothing that helps with the server side so far. It's quite possible that I missed something so if anyone has gone through this and has any tips or even a VERY bare-bones example of how to receive messages from the AjaxAppender for Log4JavaScript, I would greatly appreciate it!

解决方案

If you want to send JSON, use a JsonLayout in your 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");

This will send the logging message as HTTP form data with one name/value pair whose name is data and whose value is a JSON representation of your logging message.

This is covered in the documentation for AjaxAppender.

这篇关于Log4JavaScript服务器端接收的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆