博主正在学习日志的东西,但是网上的教程真实惨不忍睹,跳了许多坑 今天博主就要告诉你怎么使用SLF4J 首先
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.26</version> </dependency>ps: 只需要引入这个包 ps:从maven仓库有个scope,内容为test,需要把这个去掉,不然报错 !!!
也许有人会问,网上引用的包不是更多吗,怎么只需要引用一个包. 在这里需要添一个图
再看那个引入包里面的依赖码:::
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <type>test-jar</type> <version>${project.version}</version> <scope>test</scope> </dependency> </dependencies>这个包已经引用好了其他的包了,已经不需要引用其他包了…
那知道这些,之后,你需要写一个配置文件 但是,疑问就来了,这需要写到哪里呢… 这个问题,如果大家了解的话,如果用过读取配置文件是怎么 Thread.currentThread().getContextClassLoader().getResourceAsStream(“xxxx”);
这一句码到底是读取哪里的文件时, 我只需要告诉你, 在eclipse中,
只需在项目中创建一个source floder(名字任意!!!) 但是,那个配置文件的名字不能乱起 …
配置文件如下
log4j.rootLogger=debug,stdout,R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p %d (%F:%L) - %m%n #%-d{MM-dd HH:mm:ss.SSS} %-5p - [%c{1}.%t] %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=log/log.txt log4j.appender.R.MaxFileSize=100000KB log4j.appender.R.MaxBackupIndex=200 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] - %m - %l %n log4j.rootCategory=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss:SSS} %5p %t %c{2}:%L - %m%n本人配置文件,你也可以自己设计好自己的配置文件 !!!
App方法实现
import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Hello world! * */ public class App { private static final Logger logger = LoggerFactory.getLogger(App.class); public static void main(String[] args) { // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message."); Thread.currentThread().getContextClassLoader().getResourceAsStream("xxxx"); } }Log日志的表示方法 !!!
如果想需要其他的日志格式
这里还有许多 !!!
https://mvnrepository.com/search?q=slf4j 链接
但是,只要换成导入其他有binding结尾的maven的配置,但是请把那个scope去掉.
实现可以使用logback等格式的日志格式 !!!