我有一个简单的scala应用程序(不使用Play MVC框架)但使用play.api.Logger
我正在尝试找出我需要添加的模式,以包含完成日志的文件和行。
这是我从一开始就使用的logback.xml:
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date %-16coloredLevel %message %n</pattern>
</encoder>
</appender>
<logger name="play" level="INFO"/>
<logger name="application" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
它会显示如下内容:
2016-02-22 19:20:05,901 [debug] MY-LOG-MESSAGE
所以我尝试使用docs进行更改,我来了
<pattern>%date %-16coloredLevel %F L.%L:: %message %n</pattern>
产生了
2016-02-22 22:26:49,725 [debug] Logger.scala L.74:: MY-LOG-MESSAGE
它将文件报告为play.api.Logger类文件和相应的行。
我需要写什么才能得到类似com.package.Clazz.scala L.10
的内容?
有类似的东西:
2016-02-23 11:39:36,624 [info] play.api.LoggerLike$class L.93:: MESSAGE
答案 0 :(得分:1)
您需要的内容记录为Logback log layouts:
c{length}
,lo{length}
或logger{length}
在记录事件的原点输出记录器的名称。 此转换字采用整数作为其第一个也是唯一的选项。转换器的缩写算法将缩短记录器名称,通常没有明显的意义损失。将length选项的值设置为零构成一个例外。它将导致转换字将子字符串右回到记录器名称中最右边的点字符。
L
或line
:输出发出日志记录请求的行号。
生成行号信息的速度不是特别快。因此,应该避免使用它,除非执行速度不是问题。
因此,您需要做的是编辑conf/logback.xml
文件以更改日志模式:
<pattern>%date %-16coloredLevel %logger L.%L:: %message %n</pattern>
注意日志模式的%logger
部分。
这里可能存在的问题是,如果您直接使用记录器助手(play.api.Logger)(Logger.info,每个实例),该类将为play.api.LoggerLike
,这是一个类其中创建了日志。当然,这对您的用例没有用,因此您可以像这样使用日志:
import play.api.Logger
import play.api.mvc.Controller
val logger = Logger(this.getClass)
logger.info("Logging a message")
import play.Logger;
import play.Logger.ALogger;
class Something {
private static final ALogger logger = Logger.of(Something.class);
public void whatever() {
...
logger.info("some message");
...
}
}