Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何子类化/覆盖Ember.Logger?_Ember.js - Fatal编程技术网

Ember.js 如何子类化/覆盖Ember.Logger?

Ember.js 如何子类化/覆盖Ember.Logger?,ember.js,Ember.js,我正在我的Ember应用程序中实现远程日志记录功能,我希望将发送到日志控制台的所有内容推送到远程日志记录服务(例如Loggly) 我相信我需要做的是重写Ember.Logger的方法,将日志输出重定向到远程日志服务,但我不知道如何做到这一点 forEmber.Logger仅说明: 覆盖此选项以提供更健壮的日志记录功能 我如何“覆盖这个”?我尝试过执行Ember.Logger.rebookClass(),但它抱怨Ember.Logger.rebookClass不是一个函数 我在哪里做这个?在初始化

我正在我的Ember应用程序中实现远程日志记录功能,我希望将发送到日志控制台的所有内容推送到远程日志记录服务(例如Loggly)

我相信我需要做的是重写
Ember.Logger
的方法,将日志输出重定向到远程日志服务,但我不知道如何做到这一点

for
Ember.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')