一、介绍日志打印是java代码开发中不可或缺的重要步骤。日志可以排查问题和收集数据2.常用的日志框架比较常用的日志框架是logback。一些老项目会用log4j,都是用slf4j-api统一接口。(一)使用log4jlog4j使用:1.slf4j-api-1.5.11.jar2。slf4j-log4j12-1.5.11.jar3。log4j-1.2.15.jar4。在log4j.properties代码中导入org.slf4j.Logger;导入org.slf4j.LoggerFactory;记录器记录器=LoggerFactory.getLogger(xx.class);(二)使用logbacklogback使用:1.slf4j-api-1.5.11.jar2。logback-core.jar3。logback-classic.jar4。logback.xml代码同log4jimportorg.slf4j.Logger;导入org.slf4j.LoggerFactory;记录器记录器=LoggerFactory.getLogger(xx.class);3.日志级别TRACEXXXXXXXXDEBUG${log.pattern}ERROR${log.path}/error.log${log.path}/error-%d{yyyyMMdd}.%i.log.zip${maxHistory}2GB<maxFileSize>100MB${log.pattern}INFO${log.path}/info.log${log.path}/info-%d{yyyyMMdd}.%i.log.zip${maxHistory}2GB<maxFileSize>100MB${log.pattern}DEBUG${log.path}/debug.log${log.path}/debug-%d{yyyyMMdd}.%i.log.zip${maxHistory}2GB<maxFileSize>100MB${log.pattern}五、常见问题1、日志少,不易排查问题?我们经常遇到生产问题。当我们查看日志时,什么也没有。只能重新添加日志,发送包,然后排查问题。可以添加日志,开发时可以添加必要的日志;比较重要的是接口的入参,return,重要的节点start,end,mq发送接收等。2.error,info,debug什么时候用到?error:捕获异常时使用,对此无异议仍然是大量数据大数据,比如大量的mq信息,频繁访问的接口输入参数和输出参数3.启用调试如果有很多无用的调试信息怎么办?设置项目目录为debug,其他为info。这样,只有本项目的调试日志会打印logging.level.root=infologging.level.cn.mypackage=debug4.是否需要自定义日志文件?Logback可以将日志写入自定义文件,将debug、info、error分别存储,并压缩历史数据;根据自己项目的需要,大项目建议单独存放。5、springboot启动命令自带的日志和自定义日志文件的日志重复怎么办?我们一般启动springboot项目的命令为:nohupjava-jarXXXXXXXX.jar>>XXXXXXX.log2>&1&这样会生成一个日志文件,logback配置也会生成自己的日志文件,会不断重复,结果在浪费空间。如何取舍?如果贵公司统一打包脚本,使用命令生成的日志文件,去掉logback配置;如果你的公司自由度高,使用logback产生的日志,命令改为>/dev/null。,调试日志的正确写法?有些人可能会直接打开调试日志logger.debug("****");如果项目的日志级别比较高,会浪费性能,可以加一个if(log.isDebugEnabled()){log.debug("XXXXXXXXXXXX");}7、动态日志级别?有的公司支持动态配置文件,比如diamond、nacos等,你可以修改配置文件的级别,动态生效这个是有限制的,不推荐生产使用。更多技术学习分享请关注微信公众号:风记。