Java 日志系统
1. 创建日志记录器
代码语言:javascript复制private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
2. 打印日志信息
代码语言:javascript复制// 跟踪轨迹,记录跟踪代码运行过程种的信息
logger.trace("这是 trace 日志");
// 调试信息
logger.debug("这是 debug 日志");
// 自定义的一些信息
logger.info("这是 info 日志");
// 警告信息(比如方法返回值不是预期的,可以使用该日志打印输出警告信息)
logger.warn("这是 warn 日志");
// 错误信息
logger.error("这是 error 日志");
3. 日志的级别
由高到底:
代码语言:javascript复制trace < debug < info < warn < error
可以调整输出日志的级别,日志就只会在这个级别以以后的高级别生效。
日志打印参数
日志打印参数要使用占位符。 举个栗子:
代码语言:javascript复制log.info("这是一个参数 [{}]", params);
如果参数是对象,要将器转为字符串类型再打印出来。 举个栗子:
代码语言:javascript复制log.info("这是一个对象 [{}]", ToStringBuilder.reflectionToString(refuseClassQuestionTO);
注意:不要使用拼接符,如
代码语言:javascript复制log.ingo("这是一个参数" params);
这种方式虽然不会报错,但是是不规范的(不能指定参数位置)。
使用注解
在上面的例子中,我们每创建一个新类,要使用日志框架,就需要重新创建日志记录器:
代码语言:javascript复制private final Logger logger = LoggerFactory.getLogger(yourClass.class);
未免太过繁琐。 可以使用注解方法来避免重复创建日志记录器的方式。
- 依赖(该注解是通过 lombok 来实现的,需要导入 lombok 依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
- 只需要在类前加上
@Slf4j
,便能使用如下格式输出日志:
log.info("这是一个 info 日志");
注意:该注解也是 lombok 功能的一部分,需要先安装 lombok 插件和 lombok 依赖。