前言
日志对于开发来说是很重要的,可以通过日志判断问题出现的原因,但是日志过多或者无用的日志会影响问题定位,而且日志文件过大,影响服务器内存,所以对于一些不必要的日志不展示,还是很重要的,本文就是介绍Log日志级别及在项目中如何控制项目中不通过包名或者类日志的展示。
Log日志级别介绍
首先,先简单介绍一下日志级别,在软件开发过程中,日志是一种非常重要的调试和监控工具。日志级别是用来表示日志信息的重要程度和详细程度的。不同的日志级别具有不同的优先级,优先级高的日志级别会覆盖优先级低的日志级别。以下是常见的日志级别,从高到低排列:
- OFF:关闭所有日志记录。
- FATAL:记录严重错误事件,这些事件可能导致程序中断。
- ERROR:记录错误事件,但不会导致程序中断。
- WARN:记录潜在有害的情况。
- INFO:记录一般信息,用于描述程序运行过程中的关键事件。
- DEBUG:记录详细的调试信息,用于诊断问题。
- TRACE:记录最详细的调试信息,用于跟踪程序执行过程。
以上日志级别从高到低:OFF > FATAL > ERROR > WARN > INFO.> DEBUG >.TRACE,日志输出的规则是,大于等于当前设置的日志等级的信息才会被输出,比如设置了INFO级别, ERROR 和 WARN也会被输出。
Logback配置指定包日志级别
介绍完日志级别之后,接下来开始开始在项目中控制不同包名的日志级别展示。在使用Logback作为日志框架时,我们可以通过配置文件来指定不同包的日志级别。以下是一个Logback配置文件的示例,用于指定不同包的日志级别:
代码语言:xml复制<?xml version="1.0" encoding="UTF-8"?><configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.qm.controller.sys" level="WARN"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
在这个示例中,我们为com.example.package1
和com.example.package2
分别设置了不同的日志级别。com.example.package1
的日志级别设置为INFO
,com.example.package2
的日志级别设置为DEBUG
。根日志级别设置为ERROR
。
其实主要是在root上面加需要单独限制日志级别的包,比如项目中com.qm.controller.sys这个包下面的所有类日志要求warn级别才展示。
代码语言:xml复制<logger name="com.qm.controller.sys" level="warn"/>
在package com.qm.controller.sys这个包名下,选择其中一个类作为测试,比如在首页接口,输出多种级别的日志,观察我们设置了warn级别其他日志会展示吗?
代码语言: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腾讯技术创作特训营最新征文,快来和我瓜分大奖!