zl程序教程

您现在的位置是:首页 >  工具

当前栏目

JavaWeb中的日志输出处理

日志输出 处理 javaweb
2023-06-13 09:13:35 时间

[TOC]

slf4j 类

描述:Slf4j 类是一个简单打印日志的工具,任何一个日志类库。但是不是一个日志的实现而是一个抽象层,允许在后台使用任何一个日志类库。

Slf4j特点:

1.使得日志独立于任何一个特定的日志实现,意味着不需要管理多个日志配置或者多个日志类库,因为提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。

2.补充了log4j没有支持的输出打印方式,SLF4J支持{}作为占位符,等价于C语言中的%s,而不必再进行字符串的拼接节省字符串的内存消耗。

3.因为 String 字符串的拼接会使用 StringBuilder 的 append()方式,有一定的性能损耗。使用占位符仅是替换动作,可以有效提升性能

4.使用指定类初始化日志对象,在日志输出的时候可以打印出日志信息所在类

5.每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。

#日志级别从高到低分为:
A:off         最高等级,用于关闭所有日志记录。
B:fatal       指出每个严重的错误事件将会导致应用程序的退出。
C:error       指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm        表明会出现潜在的错误情形。
E:info        一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug       一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all         最低等级,用于打开所有日志记录。

LoggerFactory类说明:

  • getLogger()-获取日志对象
  • getILoggerFactory()-获取真实的日志工厂
  • performInitialization()-初始化日志操作
  • singleImplementationSanityCheck()-特定类存在判断
  • bind()-绑定获取真实的日志处理类

基础使用实例:

//1.导入 slf4j 日志包
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

//2.获取 slf4j 日志对象
//LoggerFactory.getLogger 可以在IDE控制台打印日志,便于开发一般加在最上面:
private final static Logger logger = LoggerFactory.getLogger(xxxController.class); //使用指定类初始化日志对象

//3.利用对象方法输出 slf4j 日志
logger.debug("Processing trade with id: {} and symbol: {}", id, symbol);
logger.info("支付开始-学校id{},用户openId{},支付订单号{},总金额{},订单号List{}",schoolId, openId, zfddh, total, orderNumList);
logger.error(throwable.getMessage(), throwable); //打印异常信息 throws Throwable,一般是将捕捉到的Exception对象作为日志记录的最后一个参数

//4.控制台输出示例:
2019-06-24 18:45:49.348  INFO 7308 --- [bio-8080-exec-8] c.x.p.m.v.controller.VoteController      : missing parameter