从Play 2.4 documentation开始,默认的应用程序日志记录级别应为DEBUG,右:
<logger name="play" level="INFO" />
<logger name="application" level="DEBUG" />
但是,在我的日志中,我只获得WARN和ERROR级别的消息 .
例如这段代码:
class Application extends Controller {
val log = Logger(this.getClass)
def index = Action {
log.debug("debug")
log.info("info")
log.warn("warn!")
log.error("ERROR")
Ok("ok")
}
}
...只在stdout中产生这个(同上 logs/application.log
):
[warn] c.Application - warn!
[error] c.Application - ERROR
如何正确记录应用程序DEBUG和INFO消息?
使用Play 2.4.3,基本上是默认配置,根本没有 conf/logback.xml
. (基于SBT的项目设置,没有Typesafe Activator . )
为了澄清,我知道我可以为Logback创建一个自定义配置文件( conf/logback.xml
) . 从我在第一句话中链接的文档中可以明显看出这一点 .
point 这里是:如果我的需求非常普通(记录我的应用程序的消息,还有调试和信息),我真的需要创建一个冗长的自定义配置文件吗?人们会假设一个基本的东西,因为这将默认工作,或使用一些最小的配置选项 . 如果您已经注意到,Play Framework被吹捧为good developer experience,并且它的许多内容遵循“约定优于配置”原则 .
2 回答
您在conf文件夹中根本没有.xml文件?添加此行应该为您修复:
您也可以在application.conf文件中覆盖它,尽管将来会弃用它:
我在后端聊天中从colleague学到了什么:
有一种方法没有自定义配置(适用于INFO但不适用于快速实验的DEBUG) . 但与使用更多粒度 Logger 相比,它有 significant drawbacks (如我的问题所示) .
我不想要那些缺点,所以我确实创建了
conf/logback.xml
(从default的副本开始)并添加了以下行的自定义 Logger :所以现在我的
val log = Logger(this.getClass)
方法有效 .但我没有看到如何要求30-40行自定义XML几乎可以想象的最基本的东西是好的developer experience . 如果一些Play的倡导者或开发者可以证明为什么这样做没有兴趣听到这一点 .