gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:51:43 25 4
gpt4 key购买 nike

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

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

我需要能够向框架询问已记录的所有消息。

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

也许我需要编写自己的“InMemoryAppender”?

最佳答案

有一个 ArrayAppender在 log4javascript 的单元测试中使用,它将它收到的所有日志消息存储在一个数组中,可以通过它的 logMessages 访问。属性(property)。希望它应该出现在下一个版本的主要发行版中。这是一个独立的实现:

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]";
};

使用示例:
var log = log4javascript.getLogger("main");
var appender = new ArrayAppender();
log.addAppender(appender);
log.debug("A message");
alert(appender.logMessages);

关于log4javascript - 以编程方式获取消息历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9984729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com