1. 一秒配置与效果

1.1 一秒配置

​ spring boot中无须添加任何依赖,直接在resources文件夹下面新建logback.xml文件,将以下代码复制过去,配置完成,可以使用了。

<?xml version="1.0" encoding="UTF-8"?>
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d [%thread] %msg%n</pattern>
</encoder>
</appender>
<appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<FileNamePattern>log/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>50MB</maxFileSize>
<maxHistory>180</maxHistory>
</rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout">
<!-- <pattern>%d [%thread] %msg%n</pattern>-->
<pattern> %date %-5level %logger{0} - %message%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> <appender name="warn_log" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>log/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>20MB</maxFileSize>
<maxHistory>180</maxHistory>
</rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout">
<pattern> %date %-5level %logger{0} - %message%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="error_log" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>log/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>20MB</maxFileSize>
<maxHistory>180</maxHistory>
</rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout">
<pattern> %date %-5level %logger{0} - %message%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> <root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="info_log"/>
<appender-ref ref="warn_log"/>
<appender-ref ref="error_log"/>
</root> </configuration>

1.2 Linux服务器日志效果图

三个级别info、warn、error文件,根据文件日期和文件大小进行滚动。

2. logback介绍

2.1 背景

​ 人多饭香,logback是log4j创始人重新又搞得一进阶版开源日志系统,号称占用内存小,速度提成10倍以上,测试充分等等,logback配置起来确实简单了不少,但是对于我们大部分程序开发者来说,差异其实也就那样吧,一句话:大家都在用,都说好,用就是了,具体的技术内核,组件组成啥的不详细说了,一般项目用不到,看其他人博客吧。

2.2 logback配置说明

​ 配置说明还是要介绍下,还是很有有必要的。

2.2.1 配置简单秘密

​ 之所以能基本一键配置启动logback,原因在于springboot2.0以上吧,集成了logback,配置依赖已经在starter里面了,只要使用springboot框架,就会自带logbacak 了,只需要在resouces新建一个logback.xml(名字必须是这个)就能直接使用了。

2.2.2 logback配置解析
    <root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="info_log"/>
<appender-ref ref="warn_log"/>
<appender-ref ref="error_log"/>
</root>

​ 配置了拆分成了四个层级分开打印,第一个STDOUT就是到控制台去,其余三个分别为info、warn、error,根据日志和大小进行滚动,拿info进行下说明,其他几个配置基本一样。

    <appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <FileNamePattern>log/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern> <maxFileSize>50MB</maxFileSize>
<maxHistory>180</maxHistory>
</rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout">
<pattern> %date %-5level %logger{0} - %message%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>

重点配置就三个地方

(1) FileNamePattern

​ 定义文件目录及名称命名规则:log/info-%d{yyyy-MM-dd}.%i.log,示例:log/info-2019-06-22.0.log,按天滚动;maxFileSize和maxHistory分别为文件多大滚动和保留多长时间。

(2)layout

​ 定义具体文件排版格式。

2019-06-22 11:09:17,471 INFO  LogAspect - [9a90efcc-24b1-4b57-a413-04ed874e29b5] -

(3)filter 过滤日志级别

​ 假如不想区分info、warn、error的话就不用配置多个appender,配置一个,不配置filter就可以了。


最新文章

  1. C#再识委托
  2. SQLServer修改字段类型
  3. leetcode 33. Search in Rotated Sorted Array
  4. 【kd-tree】bzoj1941 [Sdoi2010]Hide and Seek
  5. JAVA学习1
  6. SpringMVC结合ajaxfileupload.js实现文件无刷新上传
  7. win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法
  8. java整合flex
  9. POJ 3356 AGTC(最长公共子)
  10. PHP+JQuery+Ajax初始化网站基本信息(附源码)--PHP
  11. ubuntu安装elasticsearch
  12. [Java Web学习]junit.framework.AssertionFailedError: No tests found in {Class}
  13. gitlab导入现在git项目
  14. Python_生成器函数进阶_39
  15. 洛谷P2516 [HAOI2010]最长公共子序列(LCS,最短路)
  16. FragmentPagerAdapter 与 FragmentStatePagerAdapter 的区别
  17. oracle导入sql文件关闭回馈
  18. 在ASP.NET MVC中实现Select多选
  19. docker pull提示x509错误的对应方法
  20. ClientDataSet的版本兼容性

热门文章

  1. Apache Cordova开发环境搭建(一)-Visual Studio
  2. UWP开发-在UWP中使用sqlite
  3. docker启动命令,docker重启命令,docker关闭命令
  4. 全面提价2499元起小米6发布:四曲陶瓷机身+骁龙835+变焦双摄(小米在设计上也多次获得红点最佳、iF金奖等72项工业设计大奖)
  5. Dynamic linking is coming to iOS, tvOS, and watchOS ports of Qt in the 5.9 release
  6. Delphi 中 断言 Assert 用法
  7. C# 中使用不安全代码(unsafe、指针)实践
  8. Win7 访问 数据库 慢
  9. oracle11g安装时出现程序未找到文件解决办法
  10. java多线程之管道流