【问题标题】:How can I make log4js print objects like console.log does如何让 log4js 像 console.log 一样打印对象
【发布时间】:2013-01-28 09:58:55
【问题描述】:

我有一个项目在 2 个地方有 JavaScript。一种是在服务器端使用 node.js,而另一种显然是浏览器 JavaScript。我需要支持任何浏览器,并且我希望为所有浏览器提供一个单一的日志记录框架。我选择了 log4js,它非常适合记录字符串,但对于对象来说有点困难。

在节点中,当我执行Logger.debug(someObject); 时,我得到了一个漂亮的对象打印输出。当我尝试使用浏览器 JavaScript 执行此操作时,我得到 [object Object] 这是无用的。

有人知道怎么做吗?

(节点使用终端作为输出控制台,浏览器 JavaScript 使用浏览器的(Chrome)控制台)

【问题讨论】:

  • 如果您没有将对象记录为字符串,您可以在 chrome 控制台中展开对象吗?
  • 是的,但 log4js 似乎只是对刚刚打印出 [object Object] 的对象执行“toString”
  • log4javascript 已经支持此功能,但尚不支持 Node.js。下一个版本将在 Node.js 和浏览器中运行。
  • 蒂姆 - 我不相信是这样的。首先,我做了 npm install log4js 并且它安装完美,版本相同,代码来自相同的作者。其次,我通读了 javascript,发现如果不按照接受的答案中的建议修改代码,就无法做到这一点。
  • @trixtur: log4jslog4javascript 不是一回事。

标签: javascript logging log4js-node


【解决方案1】:

log4js 在开发方面还很年轻。 我会在“doAppend”中修改第 1795 行的源代码

if(typeof(loggingEvent.message) === 'object')
    return window.console.log(loggingEvent.level.levelStr + " - %o", loggingEvent.message);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 2016-01-14
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多