我在做一件事 Spring Boot
项目和我见过的日志完成与 slf4j
以及 logback
. 以下是一个 logback-spring.xml
我看到除了一个文件外,还将错误记录到控制台:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}-%d{yyyyMMddd}.%i</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="ROLLING"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
我的问题是,像这样的事情在哪里 ${CONSOLE_LOG_PATTERN}
以及 ${LOG_FILE}
在编译/运行时或任何时候从中获取实际数据?我很好奇因为 ${LOG_FILE}-%d{yyyyMMddd}.%i
通常留给我的日志名为 LOG_FILE_IS_UNDEFINED-201707012.0
这让我得出一个明显的结论 LOG_FILE
在任何地方都没有定义,我想纠正这一点。
我见过这样的资源,但它们似乎没有提供足够的关于如何注入值的内部工作的细节。
2条答案
按热度按时间avkwfej41#
springboot附带了logback的默认配置。jar已经为不同的appender嵌入了xml配置文件。您可以在github project:defaultspring boot logback配置中查看它们
您可以覆盖该配置,包括您自己的xml配置文件。为日志配置logback
您正在获取未定义的文件,因为您可能尚未定义属性
logging.file
xxe27gdn2#
您可以引用我的logback.xml文件作为参考。。。对于一个示例基本的spring引导,maven和基于主题的应用程序还可以检查:github上的project