通过日志可以查看程序的运行信息和异常信息等,便于维护。日志级别分为TRACE、DEBUG、INFO、WARN、ERROR级别,越往后打印的日志信息越少,如ERROR 级别只会在程序运行出错时才会打印日志。可在application.properties中设置日志级别。
logging.level.root=xxx(级别)
Logback日志
我们上述方法之外还可以使用Logback作为日志实现的框架。实现步骤如下:
1.在resources中创建logback-spring.xml。并进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- contextName用于区分不同的业务,无实际作用 -->
<contextName>ronghuitong</contextName>
<!-- 日志的输出目录 -->
<property name="log.path" value="D:/edgeDownload/rongzibao/logs_record" />
<!--控制台日志格式:彩色日志-->
<!-- magenta:洋红 -->
<!-- boldMagenta:粗红-->
<!-- cyan:青色 -->
<!-- white:白色 -->
<!-- magenta:洋红 -->
<property name="CONSOLE_LOG_PATTERN"
value="%yellow(%date{yyyy-MM-dd HH:mm:ss}) %highlight([%-5level]) %green(%logger) %msg%n"/>
<!--文件日志格式-->
<property name="FILE_LOG_PATTERN"
value="%date{yyyy-MM-dd HH:mm:ss} [%-5level] %thread %file:%line %logger %msg%n" />
<!--编码-->
<property name="ENCODING"
value="UTF-8" />
<!-- 控制台日志 CONSOLE_LOG_PATTERN对应前面的CONSOLE_LOG_PATTERN-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
</appender>
<!-- 文件日志 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${log.path}/log.log</file>
<append>true</append>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
</appender>
<logger name="com.pjl" level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</logger>
</configuration>
2.多环境配置
如果我们想将不同环境(开发、生产、测试环境)下的日志区别开来,需要加上springProfile标签。可将上面最后提到的代码段:
<logger name="com.pjl" level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</logger>
变为如下代码段:
<!-- 使用springProfile可以分别配置开发环境、生产环境、测试环境等不同环境-->
<!-- 开发环境和测试环境 -->
<springProfile name="dev,test">
<logger name="com.pjl" level="INFO">
<appender-ref ref="CONSOLE" />
</logger>
</springProfile>
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="com.pjl" level="ERROR">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ROLLING_FILE" />
</logger>
</springProfile>
其中,springProfile name="dev,test"要对应application.properties中的:
如果application.properties中为dev,则为开发环境,其他亦然。
3.滚动日志
当一个日志文件内容过多时,日志写入与读取会耗费大量内存。此时可以通过滚动日志解决这个文体。滚动日志是自动不断创建新的日志文件。可将下述代码段添加到logback-spring.xml中:
<!-- 滚动日志-->
<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 要区别于其他的appender中的文件名字 -->
<file>${log.path}/log-rolling.log</file>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
<!-- 设置滚动日志记录的滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档路径以及格式 %d{yyyy-MM-dd}是日志生成日期(具体到天),%i表示是该天第几个日志文件,因为下面定义了maxFileSize,一天可能会生成不止一个日志文件-->
<fileNamePattern>${log.path}/info/log-rolling-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--归档日志文件保留的最大数量-->
<maxHistory>15</maxHistory>
<!-- 新建日志文件的策略-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- maxSize表示单个日志文件的大小上限-->
<maxFileSize>10KB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
maxFileSize不要设置太大,否则启动有点慢。(我电脑是这样的)