建网站哪家好,西安市做网站的,响水做网站哪家公司好,网站建设 企泰科技公司slf4j 全称是Simple Logging Facade for Java。facade是一种设计模式。 slf4j 是一个抽象程度更高的日志组件#xff0c;本身并不提供实际的日志功能。实际的日志功能是通过log4j等日志组件实现#xff0c;而使用者只需要关心 slf4j 给出的API。 slf4j 仅仅是一个为Java程序提…slf4j 全称是Simple Logging Facade for Java。facade是一种设计模式。 slf4j 是一个抽象程度更高的日志组件本身并不提供实际的日志功能。实际的日志功能是通过log4j等日志组件实现而使用者只需要关心 slf4j 给出的API。 slf4j 仅仅是一个为Java程序提供日志输出的统一接口并不是一个具体的日志实现方案就比如JDBC一样只是一种规则而已 所以单独的slf4j是不能工作的必须搭配其他具体的日志实现方案比如log4j或者log4j2
slf4j-api提供了slf4j的抽象接口我们作为使用者只需要关心它提供的API就行。 slf4j-log4j12是slf4j与log4j的桥接组件。 log4j是我们常见的log4j日志组件。
Maven相关配置会自动安装依赖 log4j-1.2.17
!-- 日志相关 https://mvnrepository.com/artifact/org.slf4j/slf4j-api --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.30/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version/dependency
需要补充配置文件执行代码对应resources目录下 配置文件详细说明
## 1 Level(Singe) file/Console (自动默认Level.DEBUG) off,fatal,error、warn、info、debug
log4j.rootLoggerdebug, stdout, fileLayout日志输出格式Log4j提供的layout有以下几种
org.apache.log4j.HTMLLayout以HTML表格形式布局
org.apache.log4j.PatternLayout可以灵活地指定布局模式
org.apache.log4j.SimpleLayout包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout包含日志产生的时间、线程、类别等等信息# 2.1 输出到console
log4j.appender.stdoutorg.apache.log4j.ConsoleAppender
log4j.appender.stdout.TargetSystem.out
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
# %d 输出日志时间点的日期或时间默认格式为ISO8601也可以在其后指定格式--2023-12-17 15:19:11 ,311
# %p 输出优先级即 DEBUGINFOWARNERRORFATAL--DEBUG
# %c 输出所属的类目通常就是所在类的全名--com.cacho.s2b.lesson.learn.LearnLog
# %l 输出日志事件的发生位置包括类目名、发生的线程以及在代码中的行数--com.cacho.s2b.lesson.learn.LearnLog.main(LearnLog.java:12)
# %L 输出日志事件的发生位置包括类目名、发生的线程以及在代码中的行数--12代码行数
# %m 输出代码中指定的消息--真实打印的信息
# %r 输出自应用启动到输出该log信息耗费的毫秒数
# %n 输出一个回车换行符Windows平台为“/r/n”Unix平台为“/n”
log4j.appender.stdout.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss ,SSS} %p %c:%l -- %m%n# 2.2 输出到文件:
# 2.2.1 FileAppender文件;
# 2.2.2 RollingFileAppender文件大小到达指定尺寸的时候产生一个新的文件;# 2.2.2.1 MaxBackupIndex10--指定可以产生的滚动文件的最大数10# 2.2.2.2 MaxFileSize1M--日志文件到达该大小时将会自动生成新文件test1.log.1
# 2.2.3 DailyRollingFileAppender每天产生一个日志文件;# 2.2.3.1 DatePattern.yyyy-MM-dd(默认每天一个文件).yyyy-MM-dd-HH-mm每分钟
# 2.2.4 WriterAppender将日志信息以流格式发送到任意指定的地方
# 2.2.5 Appendfalse默认值是true将消息增加到指定文件中false将消息覆盖指定的文件内容
log4j.appender.fileorg.apache.log4j.RollingFileAppender
log4j.appender.file.EncodingUTF-8
log4j.appender.file.Filelogs/test.log
log4j.appender.file.MaxFileSize1kb
log4j.appender.file.MaxBackupIndex10
log4j.appender.file. org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} %5p %c:%L -- %m%n
测试代码
package com.cacho.s2b.lesson.learn;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/** Description: slf4j-api1.7.30 slf4j-log4j121.7.25 log4j1.2.17* Author LingWei* date 2023/12/14**/
public class LearnLog {public static void main( String[] args ){String error error日志信息;String warn error日志信息;Logger logger LoggerFactory.getLogger(LearnLog.class);logger.debug(slf4j项目使用了日志系统,这里是项目debug日志信息);logger.info(slf4j项目使用了日志系统,这里是项目info日志信息);logger.warn(slf4j项目使用了日志系统,这里是项目{},warn);logger.error(slf4j项目使用了日志系统,这里是项目{}{},error,可以多个参数); //{}替换成对应的变量值}
}
最终打印结果