一、常见的Java日志框架
- log4j
- jul(java.util.logging)
- logback
二、常见的java日志门面
- SLF4J:Simple Logging Facade for Java,即简单日志门面,并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架。提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。好处是只需要按照统一的方式写记录日志的代码。支持{}作为占位符,而不必再进行字符串的拼接,效率有显著的提升。
-
public class LoggerTest { private static final Logger logger = LoggerFactory.getLogger(Tester.class); public static void main(String[] args) { logger.info("Current Time: {}", System.currentTimeMillis()); } }
- commons-logging
三、本人项目中使用的日志框架
springboot框架整合log4j2,依赖了spring-boot-starter-log4j2。看了这个jar包的pom.xml文件,其中依赖了log4j2、slf4j、及桥接jar包。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starters</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
<artifactId>spring-boot-starter-log4j2</artifactId>
<name>Spring Boot Log4j 2 Starter</name>
<description>Starter for using Log4j2 for logging. An alternative to
spring-boot-starter-logging</description>
<url>http://projects.spring.io/spring-boot/</url>
<organization>
<name>Pivotal Software, Inc.</name>
<url>http://www.spring.io</url>
</organization>
<properties>
<main.basedir>${basedir}/../..</main.basedir>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</dependency>
</dependencies>
</project>