前言日志对于开发来说是很重要的,可以通过日志判断问题出现的原因,但是日志过多或者无用的日志会影响问题定位,而且日志文件过大,影响服务器内存,所以对于一些不必要的日志不展示,还是很重要的,本文就是介绍Log日志级别及在项目中如何控制项目中不通过包名或者类日志的展示。 Log日志级别介绍首先,先简单介绍一下日志级别,在软件开发过程中,日志是一种非常重要的调试和监控工具。日志级别是用来表示日志信息的重要程度和详细程度的。不同的日志级别具有不同的优先级,优先级高的日志级别会覆盖优先级低的日志级别。以下是常见的日志级别,从高到低排列: OFF:关闭所有日志记录。FATAL:记录严重错误事件,这些事件可能导致程序中断。ERROR:记录错误事件,但不会导致程序中断。WARN:记录潜在有害的情况。INFO:记录一般信息,用于描述程序运行过程中的关键事件。DEBUG:记录详细的调试信息,用于诊断问题。TRACE:记录最详细的调试信息,用于跟踪程序执行过程。以上日志级别从高到低:OFF > FATAL > ERROR > WARN > INFO.> DEBUG >.TRACE,日志输出的规则是,大于等于当前设置的日志等级的信息才会被输出,比如设置了INFO级别, ERROR 和 WARN也会被输出。 Logback配置指定包日志级别介绍完日志级别之后,接下来开始开始在项目中控制不同包名的日志级别展示。在使用Logback作为日志框架时,我们可以通过配置文件来指定不同包的日志级别。以下是一个Logback配置文件的示例,用于指定不同包的日志级别: 代码语言:xml复制 在这个示例中,我们为com.example.package1和com.example.package2分别设置了不同的日志级别。com.example.package1的日志级别设置为INFO,com.example.package2的日志级别设置为DEBUG。根日志级别设置为ERROR。 其实主要是在root上面加需要单独限制日志级别的包,比如项目中com.qm.controller.sys这个包下面的所有类日志要求warn级别才展示。 代码语言:xml复制 代码语言:java复制 package com.qm.controller.sys; @Slf4j @RestController @RequestMapping("/sys") @Api(tags = "首页数据") public class HomeController { @Resource private HomeService homeService; @Resource private HttpSessionService httpSessionService; @GetMapping("/home") @ApiOperation(value = "获取首页数据接口") public DataResult getHomeInfo() { //通过access_token拿userId String userId = httpSessionService.getCurrentUserId(); DataResult result = DataResult.success(); result.setData(homeService.getHomeInfo(userId)); log.warn("warn级别 - 获取首页数据成功"); log.info("info级别 - 获取首页数据成功"); log.debug("debug级别 - 获取首页数据成功"); return result; } } 运行程序,发现日志只有warn级别 - 获取首页数据成功,说明配置成功。 总结 本文介绍了Log日志级别的概念和Logback配置指定包日志级别的方法。通过设置不同包的日志级别,我们可以更好地控制日志输出,提高程序的可维护性和性能。在实际开发中,我们应该根据项目的需求和运行环境来选择合适的日志级别。 我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!