使用play logger在play framework 2.0.3 for java中记录信息级别
我想通过在logger.xml中配置日志级别来控制日志记录 我使用了play.Logger,在Logger.xml中设置了level ERROR,但是带有level INFO的Logger、DEBGU也会被记录下来 我使用了ALogger log=play.Logger.of(Application.class)在logger.xml中具有信息级别,但只记录错误日志 我还尝试通过使用自定义的info和debug方法来创建自定义的logger类,但没有成功 我没有在任何论坛/社区页面中找到任何解决方案。请指导我如何进一步进行 下面是代码&也是logger.xml使用play logger在play framework 2.0.3 for java中记录信息级别,java,playframework-2.0,Java,Playframework 2.0,我想通过在logger.xml中配置日志级别来控制日志记录 我使用了play.Logger,在Logger.xml中设置了level ERROR,但是带有level INFO的Logger、DEBGU也会被记录下来 我使用了ALogger log=play.Logger.of(Application.class)在logger.xml中具有信息级别,但只记录错误日志 我还尝试通过使用自定义的info和debug方法来创建自定义的logger类,但没有成功 我没有在任何论坛/社区页面中找到任何解决
package test
import play.mvc.Controller;
import play.mvc.Result;
import views.html.index;
public class Application extends Controller {
public static Result index() {
return ok(index.render("Rendering "));
}
public static Result ourApp() {
ALogger log = play.Logger.of(Application.class);
log.info("**** Info enabled *****");
log.debug("**** debug enabled *****");
log.error("**** error enabled *****");
if(log.isDebugEnabled())
{
log.debug("**** Debug enabled *****");
}
if(log.isInfoEnabled())
{
log.info("**** Info enabled *****");
}
if(log.isErrorEnabled())
{
log.error("**** Error enabled *****");
}
return ok();
}
public static Result getXPage(String patId) {
String xValue = TestDao.getXNotes(patId);
return ok(test.render(Value));
}
}
logger.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/app.log</file>
<encoder>
<pattern>%date - [%level] - from %logger %n%message%n%xException%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date - [%level] - %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="INFO" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
尝试使用记录器名称而不是类名
ALogger log = play.Logger.of("application");
这个很好。另外,注释掉文件
application.conf
中提到日志级别的行,我坚持使用相同的问题,而且它没有打印日志的实际行号和类名,在长时间搜索后,我在git hub上找到了这一行,并尝试了下面类似的sl4j
记录器,它可以工作
控制器
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("controller");
Logger.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/app.log</file>
<encoder>
<pattern>%date - [%level] - from %logger %n%message%n%xException%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date - [%level] - %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="INFO" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
最后注释掉了
application.conf
中的所有日志级别:play.Logger#info(java.lang.String)。问题是这不会打印你记录类的类名。打印play.Logger$ALogger-2016-10-02 01:19:47684-abcxyz我的应用程序日志