最近开发了一个新项目,用的是IDEA新建的springboot项目。
1.给IDEA安装GREP CONSOLE彩色日志插件
2.在resources包中加入logback-spring.xml文件
执行启动类的main方法,发现控制台的确输出了彩色日志,但是在application.properties指定的是开发环境:
spring.profiles.active=dev
并且在logback-spring.xml里面是这样设置的:
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<property name="log.path" value="D:/guli_log/edu" />
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_info.log</file>
...
</appender>
<!-- 时间滚动输出 level为 WARN日志 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_warn.log</file>
...
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_error.log</file>
...
</appender>
<!--开发环境:打印控制台-->
<springProfile name="dev">
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
<logger name="com.guli" level="INFO" />
<!--
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,默认是DEBUG
可以包含零个或多个appender元素。
-->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
</springProfile>
在D盘下并没有发现D:/guli_log/edu这个文件路径,也没有发现INFO_FILE,WARN_FILE,ERROR_FILE三个日志输出对应的log_info.log,log_warn.log和log_error.log文件日志文件.
后来经过排查发现是配置文件logback-spring.xml的问题,因为springboot默认先扫描logback.xml,如果发现没有再扫描logback-spring.xml,所以可能在某个
引入的包中包含了logback.xml配置文件导致修改配置文件不生效,把logback-spring.xml修改成logback.xml后,日志成功生效,在D盘下找到了D:/guli_log/edu
的路径,并且生成了og_info.log,log_warn.log和log_error.log三个日志文件