springboot自己集成了logback,因此无需引入依赖;spring
在resources下创建logback.xml文件,内容以下springboot
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- scan: 当此属性设置为true时,配置文件若是发生改变,将会被从新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有修改的时间间隔,若是没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false --> <!-- 应用名称 --> <property name="app_name" value="tzgServiceUser" /> <!--日志文件的保存路径,首先查找系统属性-Dlog.dir,若是存在就使用其;不然,在当前目录下建立名为logs目录作日志存放的目录 --> <property name="log_home" value="${log.dir:-logs}/${app_name}" /> <!-- 日志输出格式 --> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> <property name="console_pattern" value="%-5level \t %d{yyyy-MM-dd HH:mm:ss.SSS} \t %msg \t [%thread] \t %logger{80}%n" /> <property name="warn_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg %n" /> <property name="error_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg %n" /> <contextName>${app_name}</contextName> <!-- 信息输出到文件 --> <appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log_home}/info/%d{yyyy-MM-dd}.log </fileNamePattern> <maxHistory>10</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${warn_pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>WARN</level> </filter> </appender> <!-- 错误输出到文件 --> <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log_home}/error/%d{yyyy-MM-dd}.log </fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${error_pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> </appender> <root> <level value="INFO" /> <appender-ref ref="warn" /> <appender-ref ref="error" /> </root> </configuration>
启动项目会自动生成log:app
注意: 千万注意:一开始我看网上的不少博客说的将配置文件名字设为 logback-spring,项目启动不了!以下所示!因此小伙伴们千万注意了不要迷信网上的,实践出真知!ide
追加:能够使用logback-spring!在application.xml配置文件中指定便可:spa
logging: config: classpath: logback-spring.xml
追加:配置完上面可能有人会有疑问,ide控制台怎么没有日志输出了?由于咱们上面的配置文件中尚未配置 console(控制台):线程
在上面logback-spring.xml中添加一个appender,name为"CONSOLE":debug
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>info</level> </filter> <encoder> <Pattern>${console_pattern}</Pattern> <!-- 设置字符集 --> <charset>UTF-8</charset> </encoder> </appender>
将原来的<property name="console_pattern" value="%-5level \t %d{yyyy-MM-dd HH:mm:ss.SSS} \t %msg \t [%thread] \t %logger{80}%n" />(这个是黑白的,无感)
替换为<property name="console_pattern" value="[%highlight(%-5level)]%green([%date{yyyy-MM-dd HH:mm:ss}]) %boldMagenta([%thread-%logger{96}-%mdc{client}-%line line]) - %cyan(%msg%n)"/>(这个是输出带彩色的格式,看起来酷炫一点,习惯一些)
最后在root中添加以下一行,使console配置起效日志
<appender-ref ref="CONSOLE" />
效果图以下:code