网站栏目页如何做,江苏省建设厅网站查询施工员证,东莞市官网网站建设怎么样,手机做外贸有什么好的网站1. 简介 SLF4J(Simple Logging Facade for Java) 是Java的一个简单日志门面#xff0c;为Java日志访问提供了一套标准、规范的API框架。而具体日志的实现则可以根据这套接口去实现具体的日志框架#xff0c;以便将来需要更换日志框架时#xff0c;只替换实现框架即可。常见的…
1. 简介 SLF4J(Simple Logging Facade for Java) 是Java的一个简单日志门面为Java日志访问提供了一套标准、规范的API框架。而具体日志的实现则可以根据这套接口去实现具体的日志框架以便将来需要更换日志框架时只替换实现框架即可。常见的具体实现有JUL、log4j、logback、log4j2等。
2. 操作 2.1 引入依赖
dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion2.0.16/version
/dependency
dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.5.8/version
/dependency 2.2 配置日志实现 对于Logback通常在类路径下如src/main/resources目录创建一个名为logback-config.xml配置文件在其中定义日志记录级别、格式、输出目的地等。
?xml version1.0 encodingUTF-8?
configuration scantrue scanPeriod60 seconds debugfalse !-- 工程名/项目名 -- contextNameproject_name/contextName !-- 把debug的日志输出到控制台 -- appender nameSTDOUT classch.qos.logback.core.ConsoleAppender encoder pattern%-4relative %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n/pattern charsetUTF-8/charset/encoder /appender !-- 系统日志输出到文件并设置滚动策略 -- appender nameINFO_FILE classch.qos.logback.core.rolling.RollingFileAppender filelogs/info.log/file rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy fileNamePatternlogs/info.%d{yyyy-MM-dd}.log/fileNamePattern maxHistory30/maxHistory /rollingPolicy encoder pattern%-4relative %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n/pattern charsetUTF-8/charset/encoder filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchDENY/onMatchonMismatchACCEPT/onMismatch/filter/appender !-- 错误日志输出到文件并设置滚动策略 -- appender nameERROR_FILE classch.qos.logback.core.rolling.RollingFileAppender filelogs/error.log/file rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy fileNamePatternlogs/error.%d{yyyy-MM-dd}.log/fileNamePattern maxHistory30/maxHistory /rollingPolicy encoder pattern%-4relative %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n/pattern charsetUTF-8/charset/encoder filter classch.qos.logback.classic.filter.LevelFilter levelERROR/level onMatchACCEPT/onMatch onMismatchDENY/onMismatch /filter /appender !-- 根日志级别控制并引用所有appender -- root levelINFO appender-ref refSTDOUT/ appender-ref refINFO_FILE/ appender-ref refERROR_FILE/ /root
/configuration
2.3 启用配置并使用
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.util.StatusPrinter2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.InputStream;public class Main {public static void main(String[] args){// step1: 使用配置文件完成配置LoggerContext context (LoggerContext) LoggerFactory.getILoggerFactory();try {InputStream configStream Main.class.getClassLoader().getResourceAsStream(logback-config.xml);if (configStream null) {throw new RuntimeException(Could not find logback-config.xml);}JoranConfigurator configurator new JoranConfigurator();configurator.setContext(context);context.reset();configurator.doConfigure(configStream);new StatusPrinter2().printInCaseOfErrorsOrWarnings(context);} catch (JoranException je) {throw new RuntimeException(je);}// step2: 进行日志记录Logger log LoggerFactory.getLogger(Main.class);log.info(this is a logger!);}
}3. SLF4J的优势
解耦SLF4J将应用程序和日志记录框架分离从而编写独立于日志记录框架的应用程序灵活性由于SLF4J提供了对各种日志框架的绑定与桥接可以灵活地切换日志框架易用性SLF4J的API设计简洁明了易于学习和使用