场景一:在开发过程中,我们常常测试程序是否正确,最直接的方式就是查看 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)
可以看到有工作台中的部分日志,但用于查错误或者自定义输出,肯定足够。
到此,日志备份配置完毕,不是很难,先在项目中用起来,加油!