Logback无法在控制台中写入
问题描述:
我在我的弹簧启动应用程序中使用Logback。Logback无法在控制台中写入
问题的logback是不以“日蚀”控制台打印我的记录器的消息我都2包道和网络。
日志文件写入没有任何问题,并打印我的记录器消息。
我是根,所以可能我应该在我的控制台中看到我的记录器消息。
- logger.info(“Page X INFO”);
- logger.debug(“Page X Debug”);
这里是我的logback.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<!-- Send debug messages to a file at "C:/logs/Log.log" -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>C:/logs/Log.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>C:/logs/Log.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="package.web" level="INFO" >
<appender-ref ref="FILE" />
</logger>
<logger name="package.dao" level="DEBUG" >
<appender-ref ref="FILE" />
</logger>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
答
<logger name="package.web" level="INFO" >
<appender-ref ref="FILE" />
</logger>
您需要添加控制台附加目的地。
<logger name="package.web" level="INFO" >
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</logger>
更新:我只是重读了logback配置doku。其实,这两个人应该从根本上继承两个appender。所以,你可以尝试的是不指定任何appender-ref,看看会发生什么。如果没有输出写入文件,那么也没有 - 那么有一些奇怪的东西。如果可加性标志设置为false,我会期待这种行为。但默认是appender积累。
您如何获得记录仪? LoggerFactory.getLogger(Classname.class)'或显式'getLogger(“package.web”)'? – Fildor
我使用这个:private final Logger logger = LoggerFactory.getLogger(this.getClass()); 然后我写我的消息,如logger.info(“Page X INFO”); – NeptuneZ
您可以尝试使用'getLogger(WhatEverClassName.class)'代替。如果你获得了重复输入,那么从记录器配置中删除appender refs。正如我在我的更新中写道的,我期望appender从root继承。另外,你可以制作这个推荐模式的'private final static'。 – Fildor