0

我正在尝试在 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 django 中的其他 HTML 写在同一位置。但是,它告诉我XMLhttpRequest Request to URL returned status code 500。有人可以告诉我这里哪里出错了,这是在 django 中使用 log4javascript 的正确方法吗?

4

1 回答 1

0

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

clientLogs = request.POST.get('data')

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

是否要将其打印在 views.py 本身或将其写入 txt 文件取决于您。所以这一切都是在我无法识别的情况下实际记录日志的!我想我应该更好地阅读文档。

于 2015-04-09T06:00:20.293 回答