2

Log4Javascript を使用してクライアント側のエラーをサーバーに送信し、サーバーで結果をファイルに書き込もうとしています。AjaxAppender を使用して、データをサーバーに送信しようとしています。ドキュメントには文字通り「サーバー側のコードが提供されていません」と書かれているため、エラーメッセージを受け取る方法を理解できるかどうかを確認するために、単純な「Hello world」から始めました。

基本的に、私はこれに比較的慣れていません。優れた Java プログラマー、HTML、CSS、Javascript など。しかし、私は最近 JSP の世界に飛び込み、それを使用してエラー メッセージを受け取り、(今のところ) デバッグ コンソールに出力しようとしていました。

index.jsp ファイルに最小限のコードがあります。「Hello World」と私のjavascriptとjqueryにリンクするh1タグだけです。

私の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 検索を行ってきましたが、これまでサーバー側に役立つものは何も思いつきませんでした。私が何かを見逃している可能性は十分にあるので、誰かがこれを経験し、Log4JavaScript の AjaxAppender からメッセージを受信する方法のヒントや非常に必要最低限​​ の例さえあれば、私はそれを大いに感謝します!

4

1 に答える 1

2

JSON を送信する場合は、次のように a を使用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");

これにより、名前と値のペアが 1 つある HTTP フォーム データとしてログ メッセージが送信されます。その名前はdataで、値はログ メッセージの JSON 表現です。

これについては、 のドキュメントで説明されAjaxAppenderています。

于 2014-07-29T13:58:58.677 に答える