Spring Boot学习--logback与properties配置文件
2017-09-16 19:18
786 查看
Spring Boot支持多种log插件,这里说的是logback。
准确说来,这次要介绍的有两点:
profiles与logback
从logback中获取配置文件中的信息
有一点需要先说明,这里先要把logback.xml的名字改为logback-spring.xml。
官网上明确说了,如果不改名字,使用logging.config会出现一些问题,所以我们直接把名字改了比较好。
有些时候生成日志也可能在不同环境下要求标准不一样,这就有了在log中对环境选择的需求。
标签能够在标签的任何位置使用。官方示例如下:
现在我来给出具体示例,我想在不同的环境下,log文件的路径不同:
具体代码,方便大家拷贝:
我这里只是做演示,没有定义staging环境。
我给dev和prod环境配置了不同的log文件生成路径,分别使dev文件生效和prod生效会有我们期望的效果。
application.properties中的配置:
这是使dev生效,是prod生效的时候将上面改为prod即可。具体效果不做演示了。
这里要用到标签。
官网示例:
source的内容为application.properties中定义的信息,defaultValue为缺省值,name就是在这个配置文件中的变量名,scope固定值,使用${}来获取值。
看示例:
这行代码配置在logback-spring.xml中,在上面有给出完整的信息。
在下边任意位置可以使用${fluentHost}来获取配置文件中的内容,如果没有配置,既可以获得缺省值localhost。
application.properties中的配置:
这些内容很简单,也很实用,关于这些如果有问题可以给我留言。
准确说来,这次要介绍的有两点:
profiles与logback
从logback中获取配置文件中的信息
有一点需要先说明,这里先要把logback.xml的名字改为logback-spring.xml。
官网上明确说了,如果不改名字,使用logging.config会出现一些问题,所以我们直接把名字改了比较好。
profiles与logback
一般的配置文件都会有四个:application、dev、staging和prod。相信这几个不需要我来解释了。有些时候生成日志也可能在不同环境下要求标准不一样,这就有了在log中对环境选择的需求。
标签能够在标签的任何位置使用。官方示例如下:
<springProfile name="staging"> <!-- configuration to be enabled when the "staging" profile is active --> </springProfile> <springProfile name="dev, staging"> <!-- configuration to be enabled when the "dev" or "staging" profiles are active --> </springProfile> <springProfile name="!production"> <!-- configuration to be enabled when the "production" profile is not active --> </springProfile>
现在我来给出具体示例,我想在不同的环境下,log文件的路径不同:
具体代码,方便大家拷贝:
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="300 seconds"> <springProperty scop="context" name="fluentHost" source="myapp.fluentd.host" defaultValue="localhost"/> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <springProfile name="dev"> <fileNamePattern>/logs/dev/myconfig.%d{yyyy-MM-dd}.log</fileNamePattern> </springProfile> <springProfile name="prod"> <fileNamePattern>/logs/prod/myconfig.%d{yyyy-MM-dd}.log</fileNamePattern> </springProfile> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>${fluentHost} %d{yyyy-MM-dd HH:mm:ss}: %p [%t] %c{1} %F:%L - %m%n</pattern> </encoder> </appender> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${fluentHost} %d{yyyy-MM-dd HH:mm:ss}: %p [%t] %c{1} %F:%L - %m%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="file" /> <appender-ref ref="stdout" /> </root> </configuration>
我这里只是做演示,没有定义staging环境。
我给dev和prod环境配置了不同的log文件生成路径,分别使dev文件生效和prod生效会有我们期望的效果。
application.properties中的配置:
spring.profiles.active=dev
这是使dev生效,是prod生效的时候将上面改为prod即可。具体效果不做演示了。
从logback中获取配置文件中的信息
现在来看第二点,从配置文件中读取配置信息,也是大多数朋友想要的功能。这里要用到标签。
官网示例:
<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host" defaultValue="localhost"/> <appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender"> <remoteHost>${fluentHost}</remoteHost> ... </appender>
source的内容为application.properties中定义的信息,defaultValue为缺省值,name就是在这个配置文件中的变量名,scope固定值,使用${}来获取值。
看示例:
<springProperty scop="context" name="fluentHost" source="myapp.fluentd.host" defaultValue="localhost"/>
这行代码配置在logback-spring.xml中,在上面有给出完整的信息。
在下边任意位置可以使用${fluentHost}来获取配置文件中的内容,如果没有配置,既可以获得缺省值localhost。
application.properties中的配置:
myapp.fluentd.host=8.8.8.8
这些内容很简单,也很实用,关于这些如果有问题可以给我留言。
相关文章推荐
- SpringBoot学习:获取yml和properties配置文件的内容(转)
- spring boot学习2之properties配置文件读取
- SpringBoot内部配置:“application.properties配置”和”使用XML配置”,读取属性文件中的内容,日志配置,Profile配置(学习:SpringBoot实战)
- SpringBoot学习之配置文件注入@ConfigurationProperties
- SpringBoot学习:获取yml和properties配置文件的内容
- SpringBoot学习:获取yml和properties配置文件的内容(转)
- SpringBoot学习:获取yml和properties配置文件的内容
- Spring Boot系列教程五:使用properties配置文件实现多环境配置
- spring boot application.properties文件外部配置
- springboot 学习笔记(二)--- properties 配置
- springboot 学习笔记(二)--- properties 配置
- [Spring boot]配置文件properties加载
- SpringBoot学习——使用logback配置日志
- 【springboot】Spring boot配置文件 application.properties
- Spring Boot 读取properties配置文件
- spring boot logback.xml 文件 配置出力到linux 下的系统log
- spring boot application.properties文件外部配置
- SpringBoot 配置文件 application.properties(二)
- Spring Boot 基础知识学习(二)——配置文件多环境配置
- spring boot 学习--07---配置文件处理-02