springboot中采用的日志框架就是SLF4j(抽象层)和实现层Logback,log4j2和Logback都是log4j的升级版,只不过Log4j2用的还不是太广泛,现在大多数使用Logback。
分大小分日期切割日志,并压缩历史日志
logback的yml配置如下:
logging:
file:
#文件的存放路径以及当前日志的文件名称
name: log/log.log
level:
#给package分包定日志等级
com.xxxx.xxx:
service: error
util: info
charset:
#输出的文件以及控制台编码格式
console: utf-8
file: UTF-8
logback:
rollingpolicy:
#单个文件的大小,默认是10M,超过之后打包成一个日志文件
max-file-size: 10MB
#日志保存天数
max-history: 30
file-name-pattern: log/%d{yyyy-MM-dd_HH}.%i.log.zip
日志结果如下:使用规则:
private static final Logger LOGGER = LoggerFactory.getLogger(Logback.class);
LOGGER.info();
LOGGER.debug();
LOGGER.error();
LOGGER.warn()
解释
1、private 这样其他的类不能访问你的Logger
2、static 这样的话类中只有一个logger的实例,不管new了多少个实例,也只创建一次,节省空间 出于资源利用的考虑,Logger的构造方法参数是Class,决定了Logger是根据类的结构来进行区分日志,所以一个类只要一个Logger就可以了
3、final 不需要在类的生命周期中更改logger final修饰表示不可更改,常量
4、LOG 命名规则 说明是个静态常量,所以这块命名应该全部大写