场景一:在开发过程中,我们常常测试程序是否正确,最直接的方式就是查看 IDE 开发环境的控制台输出 log 日志,如果日志输出超长或者超快,则很难在控制台看到自己代码中的打印,或者看到异常错误等。
场景二:不管是已上线程序,还是正在调试的程序,想给其他人发送 log 日志,每次都是复制,贴入 QQ 并发送,但很多次都是失败,原因是内容太长,不得不新建 txt 文本,粘贴日志信息并保存,拖入 QQ 并发送,特别麻烦。
需求:
最好在控制台打印的过程中,能把日志备份下来,这样即使日志再多,也可以打开去看,去寻找错误原因,就像 Tomcat 服务器下 log 目录下的 catalina.out 一样。
方法一:查看本博客文章《MyEclipse 把 Console 中的 log 输出为文件》,其中有三种方法生成日志文件。
说了上面一大堆,与博客标题 Spring Boot 日志备份没有半毛钱关系。。。
别着急,既然学习 Spring Boot,肯定有更加方便的日志备份方式,接下来正式开始。
方法二:
一、创建日志配置文件
在上篇文章中,创建的 Source 目录下,创建 logback.xml 日志配置文件。
- <configuration>
- <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名 -->
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d %p (%file:%line\)- %m%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <appender name="baselog"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>log/base.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>log/base.log.%d.%i</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <!-- or whenever the file size reaches 64 MB -->
- <maxFileSize>64 MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <encoder>
- <pattern>
- %d %p (%file:%line\)- %m%n
- </pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <root level="info">
- <appender-ref ref="STDOUT" />
- </root>
- <logger name="com.menglanglang.test.springboot" level="DEBUG">
- <appender-ref ref="baselog" />
- </logger>
- </configuration>
二、运行项目
正常启动项目
三、查看日志备份
直接打开项目所在磁盘目录,进入 test-springboot,可以看到一个自动生成的目录 log,进入 log 目录后,可以找到日志文件 base.log,内容如下:
- 2018-05-24 21:45:42,460 INFO (StartupInfoLogger.java:48)- Starting App on LangLang-PC with PID 6540 (D:\STS\sts-bundle\workspace\test-springboot\target\classes started by LangLang in D:\STS\sts-bundle\workspace\test-springboot)
- 2018-05-24 21:45:42,464 DEBUG (StartupInfoLogger.java:51)- Running with Spring Boot v1.4.2.RELEASE, Spring v4.3.4.RELEASE
- 2018-05-24 21:45:42,465 INFO (SpringApplication.java:661)- No active profile set, falling back to default profiles: default
- 2018-05-24 21:45:44,690 INFO (StartupInfoLogger.java:57)- Started App in 2.577 seconds (JVM running for 3.389)
可以看到有工作台中的部分日志,但用于查错误或者自定义输出,肯定足够。
到此,日志备份配置完毕,不是很难,先在项目中用起来,加油!