使用 Django 后端配置 log4javascript 的 ajaxAppender

configuring ajaxAppender of log4javascript with Django backend

我正在尝试在 DJango 中配置 log4javascript 的 ajaxAppender。我创建了一个文件 frontendlog.json,我想在其中写入来自前端的日志。这就是我在 myPage.html.

中编写脚本的方式
    <script type="text/javascript" src="/static/js/log4javascript.js"></script>
  <script language="javascript">
    var url = '/frontEndLog/';
    var log = log4javascript.getLogger("serverlog");
    var ajaxAppender = new log4javascript.AjaxAppender(url);
    ajaxAppender.addHeader("Content-Type", "application/json");
    var jsonLayout = new log4javascript.JsonLayout();
    ajaxAppender.setLayout(jsonLayout);
    log.addAppender(ajaxAppender);
    window.onerror = function(errorMsg, url, lineNumber){
        log.fatal("Uncaught error "+errorMsg+" in "+url+", line "+lineNumber);
    };
    log.info("Front End Log");
    alert('!!')
  </script>

在我的 django urls.py 我有这个条目 url(r'^frontEndLog/$', 'TryOn.views.frontEndLog'),

在我的 django 视图中我有这个视图函数

def frontEndLog(request):
    LOGGER.info ("frontEndLog")
    return render_to_response('frontEndLog.json', mimetype="text/json")

所以我希望 frontEndLog 写在 frontEndLog.json 中,与其他 HTML 在 django 中找到的位置相同。但是,它告诉我 XMLhttpRequest Request to URL returned status code 500。有人可以告诉我哪里出错了吗,这是在 Django 中使用 log4javascript 的正确方法吗?

我解决了。我在 views.py 中打印了 django request 对象。在那里我能够在 request.POST 中找到日志消息。它以字典的形式出现,因为它是JSON-ified。您可以使用此

访问日志
clientLogs = request.POST.get('data')

'data' 是这里 key : value 对中的键。 (当您看到 POST 对象时,您可以很容易地理解这一点)。

是否要在 views.py 中打印它或将其写入 txt 文件由您决定。所以所有这一切都是在日志实际上被记录下来而我无法识别它的时候!我想我应该更好地阅读文档。