收集调试日志,但仅使用log4javascript将它们发送到服务器时出错

时间:2014-05-15 06:49:02

标签: javascript log4javascript

我正在使用log4javascript和AjaxAppender设置为ERROR级别。

如果我将其设置为调试,我将使用无用的数据充斥我的服务器,但是当发生错误时 然后,我希望看到来自会话的调试消息。

有没有办法存储调试级别,但只有在发生错误时才将其发送到服务器?

谢谢

1 个答案:

答案 0 :(得分:2)

我建议为AjaxAppender创建一个简单的包装器appender,它将日志事件存储在一个数组中并附加到包装数组,例如以下(未经测试):

function WrappedAppender(appender) {
    this.appender = appender;
    this.loggingEvents = [];
}

WrappedAppender.prototype = new log4javascript.Appender();

WrappedAppender.prototype.append = function(loggingEvent) {
    this.loggingEvents.push(loggingEvent);
    this.appender.append(loggingEvent);
};

var ajaxAppender = new log4javascript.AjaxAppender("some_server_page");
ajaxAppender.setThreshold(log4javascript.Level.ERROR);
var wrappedAppender = new WrappedAppender(ajaxAppender);

var log = log4javascript.getLogger("main");
log.addAppender(wrappedAppender);

然后,您可以随时检查wrappedAppender.loggingEvents以获取所有日志记录事件。