我有一个settingKey[Level.Value]
,用于记录日志级别。我想先设置此值,以便将我的日志级别应用于所有内容。
(我知道有一个setLogLevel
,但我希望能够对其进行设置,仅适用于我的插件)
如果我的设置名为myLogLevel
,我试图在每个任务和设置中调用myLogLevel.value
。
问题似乎是,如果我不使用它的值yield,那么将不执行设置。
我的设置是这样的:
myLogLevel := {
val theValueSetByTheUser = myLogLevel.value
MyLogLibrary.setLevel(theValueSetByTheUser)
theValueSetByTheUser
}
那我该怎么办?我是否应该在任何地方都叫println(myResultLevel)
以便使用。好像很傻
谢谢。
答案 0 :(得分:0)
我找到了解决方法:
您需要两个settingKey
。
第一个是:myLogLevel: settingKey[Level.Value]
。
插件的使用者可以将其设置为build.sbt
中的任何值,并且可以在设置中输入默认值:myLogLevel := Level.Info
。
然后,您有了第二个设置:myLog: settingKey[Logger]
没有暴露给消费者,您可以像这样定义它:
myLog := {
createLogOfLevel(myLogLevel.value)
}
在其他任务和设置中,您现在可以调用:
val log = myLog.value
log.info("message")