spring-boot的web项目对logback支持的依赖,只需要引入如下内容即可:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
若是非web项目,依赖如下即可:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>
引入日志配置文件:
在application.properties文件中引入日志配置文件 #===================================== log ============================= logging.config=classpath:logback.xml
日志配置文件logback.xml
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> <configuration scan="true" scanPeriod="10 seconds" debug="false"> <!--<include resource="org/springframework/boot/logging/logback/base.xml"/>--> <!-- <property>:用来定义变量值的标签,<property> 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。 通过<property>定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 --> <property name="LOG_DEV_PATH" value="dev_logs"/> <!--以上信息也可以采用外部配置文件的方式获取,外部配置文件信息见文末,具体如下:--> <property resource="logback.properties"/> <!--控制台输出--> <appender name="STANDARD OUTPUT" class="ch.qos.logback.core.ConsoleAppender"> <!--字符串输出,默认System.out,可配成System.err --> <Target>System.out</Target> <!--打印debug级别及以上日志信息--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <!-- 日志信息格式化: %d{yyyy-MM-dd HH:mm:ss.SSS}:时间前缀格式, %-5level:从左边以5个字符的宽度显示级别 %logger:全路径显示logger名,如com.wendao.card.booking.controller.CardInfoController -%msg:日志信息 %n:换行符 %highlight():高亮显示 %boldYellow():粗黄显示 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%logger) --%msg%n</pattern> </encoder> </appender> <!--debug日志文件输出--> <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<file> : 被写入的文件名,可以是相对目录,也可以绝对目录,如果目录不存在则自动创建。--> <File>${LOG_DEV_PATH}/debug.log</File> <!--ThresholdFilter 过滤掉低于指定临界值的事件 . 当记录的级别等于或高于临界值时--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <!--最常用的滚动策略,根据时间来制定滚动策略,即负责滚动也负责触发滚动。--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DEV_PATH}/debug-%d{yyyyMMdd}.log%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!--日志文件最大大小--> <maxFileSize>500MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--按天保存,日志最长保存时间--> <maxHistory>30</maxHistory> </rollingPolicy> <!--日志信息格式--> <encoder> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern> </encoder> </appender> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_DEV_PATH}/info.log</File> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DEV_PATH}/info-%d{yyyyMMdd}.log%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>500MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>2</maxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern> </layout> </appender> <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_DEV_PATH}/warn.log</File> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>WARN</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DEV_PATH}/warn-%d{yyyyMMdd}.log%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>500MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>2</maxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern> </layout> </appender> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <File>${LOG_DEV_PATH}/error.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DEV_PATH}/error-%d{yyyyMMdd}.log%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>500MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="STANDARD OUTPUT"/> <appender-ref ref="DEBUG_FILE"/> <!--<appender-ref ref="INFO_FILE" />--> <!--<appender-ref ref="WARN_FILE" />--> <appender-ref ref="ERROR_FILE"/> </root> </configuration>
logback.properties文件:
#日志生成的目录(当前项目与src同级别的logs目录) LOG_PATH=logs