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> 
+1

您如何获得记录仪? LoggerFactory.getLogger(Classname.class)'或显式'getLogger(“package.web”)'? – Fildor

+0

我使用这个:private final Logger logger = LoggerFactory.getLogger(this.getClass()); 然后我写我的消息,如logger.info(“Page X INFO”); – NeptuneZ

+1

您可以尝试使用'getLogger(WhatEverClassName.class)'代替。如果你获得了重复输入,那么从记录器配置中删除appender refs。正如我在我的更新中写道的,我期望appender从root继承。另外,你可以制作这个推荐模式的'private final static'。 – Fildor

<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积累。

+0

它的工作原理,如你所说,他们应该从根继承。 *谢谢* – NeptuneZ

+0

我最后的代码是: \t \t \t \t \t \t \t \t \t \t \t – NeptuneZ