首页 文章

Spring启动登录到多个文件

提问于
浏览
3

有什么办法可以根据配置将spring boot日志记录配置到多个文件/控制台吗?即某些日志语句应写入审计文件,而正常的日志语句应写入控制台/普通日志文件 .

下面是我在spring boot示例应用程序中尝试过的代码 .

的logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="file" level="DEBUG" additivity="false">
        <appender-ref ref="FILE" />
    </logger>
    <logger name="org.hello" level="ERROR" additivity="false">
        <appender-ref ref="CONSOLE" />
    </logger>
</configuration>

下面是application.properties条目

logging.level.org.springframework.web=INFO
logging.file=logs/spring-boot-logging.log

在HelloController下面

@RestController
public class HelloController {

Logger logger = LoggerFactory.getLogger(HelloController.class);

    Logger logger1 = LoggerFactory.getLogger("file");

    @RequestMapping("/")
    public String index() {

        logger.info("My Log test");
        logger1.info("My Audit test");


        return "Greetings from Spring Boot!";
    }

}

有人可以帮忙吗?有没有人面临类似的情况?

非常感谢

2 回答

  • 0

    标准的logback示例,包含不同包的2个文件转到不同的文件:

    <configuration>
    
      <appender name="FILE1" class="ch.qos.logback.core.FileAppender">
        <file>myApp1.log</file>
        <encoder>
          <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
      </appender>
    
      <appender name="FILE2" class="ch.qos.logback.core.FileAppender">
        <file>myApp1.log</file>
        <encoder>
          <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
      </appender>
    
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%msg%n</pattern>
        </encoder>
      </appender>
    
      <logger name="com.package1.foo" level="DEBUG">
        <appender-ref ref="FILE1" />
      </logger>
    
      <logger name="com.package2.bar" level="DEBUG">
        <appender-ref ref="FILE2" />
      </logger>
    
      <root level="debug">
        <appender-ref ref="STDOUT" />
      </root>
    </configuration>
    
  • 1

    只需在配置文件中添加另一个logger和appender,并使用配置中定义的Logger名称创建logger对象 . 有关更多说明,请查看Spring boot multiple log files

相关问题