logback.xml读取application.properties自定义日志路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logback.xml读取application.properties自定义日志路径相关的知识,希望对你有一定的参考价值。
参考技术A 网上有说:亲测,即使是在 application.properties里,直接写 <property name="logging.path" source="logging.path"/> 也不行的,需要写成 <springProperty scope="context" name="logging.path" source="logging.path"/>
以下为开发步骤:
如果logback.xml 配置的是 <include resource="org/springframework/boot/logging/logback/base.xml”/>而不是下面两个,会默认多生成一个日志文件。
/spring.log 文件
logback-spring.xml读取spring的属性
1. application.yml
info:
name: file-uploader-service
# 日志目录(已过期,不建议使用)
logging:
path: home/logs
file: file-uploader-service
server:
# 指定Tomcat端口
port: 8000
eureka:
client:
serviceUrl:
# 指定eureka server通信地址,注意/eureka/小尾巴不能少
defaultZone: http://${EUREKA_HOST}:${EUREKA_PORT}/eureka/
ribbon:
ConnectTimeout: 1800000 #连接超时
ReadTimeout: 1800000 #读取超时
2. logback-spring.xml
方法一:
<!-- 日志文件保存路径 -->
<property name="log_home" value="${LOG_PATH}"/>
<property name="prefix_name" value="${LOG_FILE}"/>
方法二:
<!-- 日志文件保存路径 -->
<property name="log_home" value="${logs}"/>
<!-- 读取spring配置 -->
<springProperty scope="context" name="prefix_name" source="info.name"/>
<!--<property name="prefix_name" value="${info_name}"/>-->
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志文件保存路径 -->
<property name="log_home" value="${LOG_PATH}"/>
<property name="prefix_name" value="${LOG_FILE}"/>
<!-- 日志输出格式 -->
<property name="ENCODER_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n"/>
<property name="CONSOLE_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss SSS}][%p] %m%n" />
<!-- 控制台日志:输出全部日志到控制台 -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_PATTERN}</pattern>
</encoder>
</appender>
<!-- 文件日志:输出指定日志到文件 -->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_home}/${prefix_name}-info-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>14</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_PATTERN}</pattern>
</encoder>
</appender>
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_home}/${prefix_name}-error-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>14</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_PATTERN}</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>
以上是关于logback.xml读取application.properties自定义日志路径的主要内容,如果未能解决你的问题,请参考以下文章
$application.home 如何在 play 框架的 conf/logback.xml 中解析?
SpringBoot中logback.xml使用application.yml中属性