Ember.js 如何子类化/覆盖Ember.Logger?
我正在我的Ember应用程序中实现远程日志记录功能,我希望将发送到日志控制台的所有内容推送到远程日志记录服务(例如Loggly) 我相信我需要做的是重写Ember.js 如何子类化/覆盖Ember.Logger?,ember.js,Ember.js,我正在我的Ember应用程序中实现远程日志记录功能,我希望将发送到日志控制台的所有内容推送到远程日志记录服务(例如Loggly) 我相信我需要做的是重写Ember.Logger的方法,将日志输出重定向到远程日志服务,但我不知道如何做到这一点 forEmber.Logger仅说明: 覆盖此选项以提供更健壮的日志记录功能 我如何“覆盖这个”?我尝试过执行Ember.Logger.rebookClass(),但它抱怨Ember.Logger.rebookClass不是一个函数 我在哪里做这个?在初始化
Ember.Logger
的方法,将日志输出重定向到远程日志服务,但我不知道如何做到这一点
forEmber.Logger
仅说明:
覆盖此选项以提供更健壮的日志记录功能
Ember.Logger.rebookClass()
,但它抱怨Ember.Logger.rebookClass不是一个函数
Ember.Logger
不是Ember类。它只是一个对象,上面有一些方法
您可以通过以下方式覆盖它
Ember.Logger.log = function(...
你可以把这个放在任何你想放的地方。我可能会把它放在
app.js
的顶部,扩展并更新@user663031响应
截至2017年11月,Ember.Logger
的状态尚未确定。它没有包含在中,并且还没有未来的RFC
可以直接使用调试实用程序,例如,从Ember.Logger
中扩展这些原型
但是,我选择直接覆盖Ember.Logger
,因为它允许我包含我喜欢的任何日志工具(与debug util相反),而无需修改分散在代码中的日志语句
当我在后端使用bunyan时,选择使用登录,顺便说一下,它与Ember.Logger
具有相同的info
,warn
,error
YMMV,但这是对我来说最简单的例子
好吧。希望有一天,我会对Javascript中定义“类”和“对象”的所有方法了如指掌。谢谢你!
// app/app.js
import LOG from './logger-bunyan';
if (config.APP.LOG_BUNYAN) {
Ember.Logger = LOG;
}
// app/logger-bunyan.js
import bunyan from 'npm:browser-bunyan';
const LOG = bunyan.createLogger({
name: 'emberApplication',
});
export default LOG;
// config/environment.js
if (environment === 'development') {
ENV.APP.LOG_BUNYAN = true;
}
// app/component/WhereIWantToLog.js
Logger.warn('bunyan logged warning message')