使用Django后端配置log4javascript的ajaxAppender

时间:2015-04-07 12:59:22

标签: ajax django-templates log4javascript

我正在尝试在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的正确方法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

是否要在views.py中打印它或将其写入txt文件取决于您。所以这一切都是在日志实际上被记录而没有我能够识别它!我想我应该更好地阅读文档。