slf4j是對全部日誌框架制定的一種規範、標準、接口,並非一個框架的具體的實現,由於接口並不能獨立使用,須要和具體的日誌框架實現配合使用(如log4j、logback),使用接口的好處是當項目須要更換日誌框架的時候,只須要更換jar和配置,不須要更改相關java代碼java
log4j、logback、log4j2都是一種日誌具體實現框架,因此既能夠單獨使用也能夠結合slf4j一塊兒搭配使用web
springboot項目中需導入:spring
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>apache
如項目中有導入spring-boot-starter-web依賴包記得去掉spring自帶的日誌依賴spring-boot-starter-logging,以下:json
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>springboot
springboot方式:
application.properties中添加配置 logging.config=classpath:log4j2_dev.xml, log4j2_dev.xml是你建立的log4j2的配置文件名,放在resources下,如放在其餘路徑則對應修改app
Web工程方式:框架
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>/WEB-INF/conf/log4j2.xml</param-value>
</context-param>
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>異步
純Java方式:
public static void main(String[] args) throws IOException {
File file = new File("D:/log4j2.xml");
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
final ConfigurationSource source = new ConfigurationSource(in);
Configurator.initialize(null, source);
Logger logger = LogManager.getLogger("myLogger");
}spring-boot
配置文件的格式:log2j配置文件能夠是xml格式的,也能夠是json格式的, 配置文件的位置:log4j2默認會在classpath目錄下尋找log4j2.xml、log4j.json、log4j.jsn等名稱的文件,若是都沒有找到,則會按默認配置輸出,也就是輸出到控制檯,也能夠對配置文件自定義位置(須要在web.xml中配置),通常放置在src/main/resources根目錄下便可