之前对日志这块重视不够,日志文件的处理也照搬老项目的.领导问起来也是稀里糊涂的.这次由于做了个数据收集的项目每天数据量上百万.笔者一个菜鸟程序员,到处乱打印日志,搞得日志记录文件老是被撑爆
笔者不得不做对日志做一次优化,在此简略梳理一下logback
先说说日志文件需要做的事情输出到控制台,笔者认为日志完全没有必要输出到控制台,这样除了白白浪费硬盘,几乎用不到.
好的日志管理应该划分出不同级别的文件来记录不同level的日志.然后根据日志的级别配置滚动删除的时间间隔.日志打印也要慎重使用不可随意打印、胡乱打印.
调试的时候在日志文件里也能实时的观察到日志信息的输出根本不需要用到控制台.
logback是由log4j创立者设计的一款经典的日志记录系统
logback体系上分为三个模块core、Classic和Access.Core模块是其他两个模块的基础.Classic相当于log4j的改进版.
简单使用案例
支持包
slf4j-api、logback-classic、logback-core 在工程目录src下创建配置文件logback.xml 注1.logback首先会试着查找logback.groovy文件;
2.当没有找到时,继续试着查找logback-test.xml文件;
3.当没有找到时,继续试着查找logback.xml文件;
4.如果仍然没有找到,则使用默认配置(打印到控制台)
public class LogbackDemo { private static Logger log = LoggerFactory.getLogger(LogbackDemo.class); public static void main(String[] args) { log.trace("============trace"); log.debug("======debug"); log.info("======info"); log.warn("======warn"); log.error("======error"); String name = "Aub"; String message = "3Q"; String[] fruits = { "apple", "banana" }; // logback提供的可以使用变量的打印方式,结果为"Hello,Aub!" log.info("Hello,{}!", name); // 可以有多个参数,结果为“Hello,Aub! 3Q!” log.info("Hello,{}! {}!", name, message); // 可以传入一个数组,结果为"Fruit: apple,banana" log.info("Fruit: {},{}", fruits); } }参考样例:demo
参考文档