通过日志可以查看程序的运行信息和异常信息等,便于维护。日志级别分为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不要设置太大,否则启动有点慢。(我电脑是这样的)