如何使用相同的签名重载方法,但使用其他隐式参数

时间:2015-03-15 09:33:55

标签: scala operator-overloading mixins

目前要添加标准前缀以登录我们的Play应用程序,我使用其他功能覆盖LoggerLike特征

trait MyLogger extends LoggerLike {

    ...

    def error(message: => String, error: => Throwable)(implicit myObject: MyObject)  {
        if (super.isErrorEnabled) logWithPrefix(encounterAware, super.error, message, error)
    }

    private def logWithPrefix(myObject: MyObject, log: (=> String) => Unit, message: => String) = {
        log(s"A:${myObject.A} ${message}")
    }   

    ...
}

并像这样使用它:

new Logger(LoggerFactory.getLogger(this.getClass.getSimpleName)) with MyLogger

我希望这只影响在上下文中具有隐式myObject的日志条目,并保留所有旧引用有效,但我的所有日​​志都开始引用新方法。

我不想更改方法的名称或为隐式提供默认值。

我如何声明错误方法,以获得所需的行为?

0 个答案:

没有答案