0

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

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

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

谢谢

4

1 回答 1

2

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

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以获取所有日志记录事件。

于 2014-05-15T08:47:57.370 回答