Spring Boot登录到多个文件 [英] Spring boot logging into multiple files
问题描述
有什么方法可以根据配置将Spring Boot日志配置为多个文件/控制台吗?即,某些日志语句应写入审核文件,而常规日志语句应进入控制台/常规日志文件.
Is there any way I can configure spring boot logging to multiple files/console based on the configuration? i.e Some of the log statements should write into an audit file and normal log statements should go to console/normal log file.
下面是我在Spring Boot示例应用程序中尝试过的代码.
Below is the code I have tried on spring boot example application.
logback-spring.xml
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条目
Below is the application.properties entries
logging.level.org.springframework.web=INFO
logging.file=logs/spring-boot-logging.log
HelloController下面
Below the 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!";
}
}
有人可以帮忙吗?有人遇到过类似情况吗?
Can someone please help? Did anyone face similar situation?
非常感谢
推荐答案
标准的logback示例,两个具有不同程序包的文件将转到不同的文件:
Standard logback example, two files with different packages going to different files :
<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>
这篇关于Spring Boot登录到多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!