SLF4J 代表 Simple Logging Facade for Java。相当于一个门面,提供了 Java 中所有日志框架的简单抽象。
- 使用 SLF4J 框架,可以在部署时,迁移到所需的日志记录框架(如 Log4j, JUL, Simple logging,NOP等)
- SLF4J 支持参数化日志记录消息
- SLF4J提供了一个简单的Java工具,称为迁移器。
日志严重程度:
| 序号 | 严重程度 | 描述 |
|---|---|---|
| 1 | Fatal | 导致应用程序终止的严重问题 |
| 2 | ERROR | 运行时错误 |
| 3 | WARNING | 大多数情况下,这种级别的错误是由于使用了已弃用的API |
| 4 | INFO | 运行时发生的事件 |
| 5 | DEBUG | 有关系统流程的信息 |
| 6 | TRACE | 有关系统流程的更多详细信息 |
SLF4J 和 Log4j的关系:
1.2 Logback概述Logback 分为三个不同的模块,logback-core(核心代码模块),logback-classic(log4j的一个改良版本,同时实现了slf4j的接口,这样如果之后要切换其他日志组件也是一件很容易的事),logback-access(访问模块与Servlet容器集成提供通过Http来访问日志的功能)
Logger 和 LoggerFactory 是 SLF4J包中的类 , LoggerContext 的作用是获得内部状态信息
logback在启动的时候,会按照下面的顺序加载配置文件(只要获取到配置之后就不再继续获取了)
- 如果Java程序启动时指定了logback.configurationFile属性,就用该属性指定的配置文件。
- 如java -D logback.configurationFile=/path/myLogback.xml Test,这样执行Test类的时候就会加载/path/myLogback.xml配置
- 在classpath(resources目录下)中查找 logback.groovy 文件
- 在classpath中查找 logback-test.xml 文件
- 在classpath中查找 logback.xml 文件
- 如果是 JDK6+,那么会调用ServiceLoader 查找 com.qos.logback.classic.spi.Configurator接口的第一个实现类
- 自动使用 ch.qos.logback.classic.BasicConfigurator 在控制台输出日志
使用 Maven进行快速开发
2.1 导入依赖2.2 在resources目录下添加logback.xmlorg.slf4j slf4j-api 1.7.25 ch.qos.logback logback-classic 1.2.3
示例文件:
2.3 代码中使用${console.pattern} ${log.path}/sys-info.log ${log.path}/sys-info.%d{yyyy-MM-dd}.log 30 ${log.pattern} INFO ACCEPT DENY ${log.path}/sys-error.log ${log.path}/sys-error.%d{yyyy-MM-dd}.log 40 ${log.pattern} ERROR ACCEPT DENY
public class Main {
static final Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
logger.info("{}", "测试信息");
}
}



