介紹
SLF4J全稱“Simple Logging Facade for Java”,作為各種日志框架的簡(jiǎn)單門面。例如: java.util.logging、logback 、 reload4j等。只需要切換日志框架的jar包依賴就可以切換日志框架。
SLF4J支持的日志框架包含如下:
- log4j:常用的日志框架,需要有配置文件log4j.properties
- logback:可以通過logback.xml修改日志輸出配置,如果沒有l(wèi)ogback.xml則使用默認(rèn)配置
- java.util.logging:JDK 1.4 logging
- simple:簡(jiǎn)單實(shí)現(xiàn),只顯示INFO以上級(jí)別,實(shí)際使用System.err輸出
- jcl:Jakarta Commons Logging
- nop:無提示不顯示所有日志
使用示例
1、引入依賴jar包
SLF4J目前已將發(fā)布了2.X版本,這里以經(jīng)常用的1.7.36版本為例。
創(chuàng)建簡(jiǎn)單的maven工程,并引入依賴。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
<version>1.7.36</version>
</dependency>
<!-- logback
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency> -->
<!-- 簡(jiǎn)單實(shí)現(xiàn),只顯示INFO以上級(jí)別,實(shí)際使用System.err輸出
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
</dependency> -->
<!-- jdk14
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.36</version>
</dependency> -->
<!-- nop 無提示不顯示所有日志
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.36</version>
</dependency>-->
<!-- Jakarta Commons Logging
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jcl</artifactId>
<version>1.7.36</version>
</dependency> -->
2、代碼使用示例
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogTest {
private final static Logger log = LoggerFactory.getLogger(LogTest.class);
public static void main(String[] args) {
log.info("這個(gè)是測(cè)試日志輸出,{}","Hello World");
}
}
1)如果使用log4j需要添加配置文件log4j.properties
,如果沒有該配置文件,無法打印日志,簡(jiǎn)單內(nèi)容如下:
# Root logger option
log4j.rootLogger=INFO,file,stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{2}:%L - %m%n
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log/output-log4j.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{2}:%L - %m%n
2)如果使用logback,也可以添加配置文件logback.xml
,如果沒有該配置文件,就使用默認(rèn)配置,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<file>log/output-logback.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>log/output.log.%i</fileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1MB</MaxFileSize>
</triggeringPolicy>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
3、測(cè)試打印內(nèi)容
1)log4j
2023-03-10 14:55:54 [main] INFO demo.LogTest:9 - 這個(gè)是測(cè)試日志輸出,Hello World
2023-03-10 14:55:56 [main] INFO demo.LogTest:9 - 這個(gè)是測(cè)試日志輸出,Hello World
2)logback
2023-03-10 14:53:21 [main] INFO cn.hj.sl4j.demo.LogTest - 這個(gè)是測(cè)試日志輸出,Hello World
2023-03-10 14:53:33 [main] INFO cn.hj.sl4j.demo.LogTest - 這個(gè)是測(cè)試日志輸出,Hello World
3)slf4j-simple
[main] INFO cn.hj.sl4j.demo.LogTest - 這個(gè)是測(cè)試日志輸出,Hello World
4)slf4j-jdk14
三月 10, 2023 3:00:53 下午 cn.hj.sl4j.demo.LogTest main
信息: 這個(gè)是測(cè)試日志輸出,Hello World
5)jcl文章來源:http://www.zghlxwxcb.cn/news/detail-432234.html
三月 10, 2023 3:01:31 下午 org.slf4j.impl.JCLLoggerAdapter info
信息: 這個(gè)是測(cè)試日志輸出,Hello World
總結(jié)
SLF4J是一個(gè)門面日志框架,統(tǒng)一了日志的使用標(biāo)準(zhǔn),如果要切換不同的日志實(shí)現(xiàn)只需要修改對(duì)應(yīng)的實(shí)現(xiàn)依賴jar包就可以,不需要修改java代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-432234.html
到了這里,關(guān)于SLF4J日志框架在項(xiàng)目中使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!