首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4javascript -以编程方式获取消息的历史记录?

log4javascript -以编程方式获取消息的历史记录?
EN

Stack Overflow用户
提问于 2012-04-03 06:30:10
回答 1查看 357关注 0票数 2

我正在考虑在我的应用程序中使用javascript日志框架。

我很喜欢log4javascript (http://log4javascript.org/)的外观,但我有一个要求,我不确定它是否满足。

我需要能够要求框架的所有消息都已被记录。

也许我可以使用一个不可见的InPageAppender (http://log4javascript.org/docs/manual.html#appenders)来记录到一个DOM元素,然后从该DOM元素中提取出消息-但这似乎相当繁重。

也许我需要写我自己的"InMemoryAppender"?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-03 07:02:47

在log4javascript的单元测试中使用了一个ArrayAppender,它将接收到的所有日志消息存储在一个可通过其logMessages属性访问的数组中。希望它能在下一个版本的主发行版中显示出来。下面是一个独立的实现:

代码语言:javascript
复制
var ArrayAppender = function(layout) {
    if (layout) {
        this.setLayout(layout);
    }
    this.logMessages = [];
};

ArrayAppender.prototype = new log4javascript.Appender();

ArrayAppender.prototype.layout = new log4javascript.NullLayout();

ArrayAppender.prototype.append = function(loggingEvent) {
    var formattedMessage = this.getLayout().format(loggingEvent);
    if (this.getLayout().ignoresThrowable()) {
        formattedMessage += loggingEvent.getThrowableStrRep();
    }
    this.logMessages.push(formattedMessage);
};

ArrayAppender.prototype.toString = function() {
    return "[ArrayAppender]";
};

示例用法:

代码语言:javascript
复制
var log = log4javascript.getLogger("main");
var appender = new ArrayAppender();
log.addAppender(appender);
log.debug("A message");
alert(appender.logMessages);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9984729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档