日志入门
创建spring-boot-starter-logging项目
依赖:
<properties>
<spring.boot.version>2.1.3.RELEASE</spring.boot.version>
</properties>
<artifactId>spring-boot-starter-logging</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
代码(直接使用)
import org.apache.commons.logging.LogFactory;
import org.apache.logging.log4j.LogManager;
import org.slf4j.LoggerFactory;
import java.util.logging.Logger;
public class Application {
public static void main(String[] args) {
LogFactory.getLog(Application.class).info("common log日志");
LoggerFactory.getLogger(Application.class).info("slf4j-api");
LogManager.getLogger(Application.class).info("log4j-api 日志");
Logger.getLogger("Application").info("java util log");
}
}
LoggFactory三种api+java原生日志支持:
org.apache.commons.logging.LogFactory 是spring-jcl里自己包的一层(1.4.1版本里是依赖的jcl);根据依赖类的存在,实例化相关org.apache.logging.log4j.LogManager 是log4j-api实例化 org.slf4j.LoggerFactory 是slf4j相关api java.util.logging.Logger 是java原生的日志
可以参考spring-boot日志相关梳理(-), 里面描述了spring-boot-autoconfigure里关于日志api的相关依赖。
spring配置相关使用:
修改pom文件
<properties>
<spring.boot.version>2.1.3.RELEASE</spring.boot.version>
</properties>
<artifactId>spring-boot-starter-logging</artifactId>
<dependencies>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.23</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
application.yml
logging:
file: hello.log
Java 代码:
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
LogFactory.getLog(Application.class).info("common log日志");
LoggerFactory.getLogger(Application.class).info("slf4j-api");
LogManager.getLogger(Application.class).info("log4j-api 日志");
Logger.getLogger("Application").info("java util log");
}
}
运行代码:发现console 和hello.log都有输出,spring 环境下都有哪些配置参数可以参考
~/.m2/repository/org/springframework/boot/spring-boot/2.1.3.RELEASE/spring-boot-2.1.3.RELEASE.jar!/META-INF/additional-spring-configuration-metadata.json
java.util.logging demo : https://github.com/spring-projects/spring-boot/blob/v2.1.3.RELEASE/spring-boot-project/spring-boot/src/main/resources/org/springframework/boot/logging/java/logging-file.properties