如何在使用restTemplate时禁用或路由调试日志

时间:2014-10-31 07:46:50

标签: java spring-mvc resttemplate

我正在尝试开发一个CLI命令,该命令使用rest从服务器数据库返回一个雇员列表。我使用restTemplate.getObject()方法来获取列表。这工作正常,但在控制台中,我得到调试日志,如

3:06:58.564 [main] DEBUG o.s.web.client.RestTemplate - Setting request Accept header to     [application/xml, text/xml, application/*+xml, application/json]
13:06:58.989 [main] DEBUG o.s.web.client.RestTemplate - GET request for "https://ip:8080/service/employee/list" resulted in 200 (OK)        

我不希望在我的控制台中显示这些调试消息。如何禁用这些?还可以考虑将这些消息路由到另一个日志文件。

2 个答案:

答案 0 :(得分:0)

看起来您正在使用Logback。它具有高度可配置性,可以仅记录特定级别的消息(仅警告或仅错误)以及登录控制台的可能性(默认情况下,指向文件,...)。你应该阅读logback manual,但这里有一些线索

Logback从类路径

的根目录中的文件logback.xml读取其配置

如果你想停止记录DEBUG消息(下一级是信息,然后警告,错误和关闭)

<configuration debug="true"> 

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoders are  by default assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

如果要登录文件:

<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>testFile.log</file>
    <append>true</append>
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>

答案 1 :(得分:0)

基于java的配置而不是xml对我有效。

FileAppender<ILoggingEvent> myAppender = new FileAppender<ILoggingEvent>();
LoggerContext loggerContext=(LoggerContext)LoggerFactory.getILoggerFactory();
loggerContext.reset();

PatternLayoutEncoder layout=new PatternLayoutEncoder();
layout.setContext(loggerContext);
layout.setPattern("%X{first} %X{last} - %m%n");
layout.start();
myAppender.setAppend(true);
    myAppender.setFile("logs/testFile1.log");
    myAppender.setName("File1");
    myAppender.setEncoder(layout);
    myAppender.setContext(loggerContext);
    myAppender.start();
    ch.qos.logback.classic.Logger logbackLogger = loggerContext.getLogger("Main");
    logbackLogger.addAppender(myAppender);
    logbackLogger.setLevel(Level.DEBUG);
    logbackLogger.setAdditive(true);