java中常用的日志分类有以下几种
1. JUL (java.util.Logging) Java自带的日志,可以直接使用
package site.uuyy.log; import java.util.logging.Logger; public class JUL { public static void main(String[] args) { Logger log = Logger.getLogger("jul"); log.info("123"); } }
2. log4j
maven 项目导入,无其他依赖
log4j
log4j
1.2.12
package site.uuyy.log; import org.apache.log4j.Logger; public class Log4j { public static void main(String[] args) { Logger logger=Logger.getLogger(Log4j.class); logger.info("log4j1"); } }
需要添加配置文件log4j.properties 放置在classpath下面:
log4j.rootLogger=debug,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{ABSOLUTE} %5p %c:%L - %m%n
3. JCL :Jakarta commons-logging ,是apache公司开发的一个抽象日志通用框架,本身不实现日志记录,但是提供了记录日志的抽象方法即接口(info,debug,error…….),底层通过一个数组存放具体的日志框架的类名,从而判断使用哪种前两种那种方式来实现,已停止更新
jcl 不直接记录日志,通过第三方记录日志
如果使用jcl来记录日志,在没有log4j的依赖情况下,是用jul
如果有了log4j则使用log4j
添加依赖:
commons-logging
commons-logging
1.2
编写测试类:
package site.uuyy.log; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class JCL { public static void main(String[] args) { Log log=LogFactory.getFactory().getInstance(JCL.class); log.info("jcl"); } }
4. slf4j: Simple Log Faceded for Java 也不记录日志, 通过绑定器绑定一个具体的日志记录来完成日志记录
添加依赖:
org.slf4j
slf4j-api
1.7.25
ch.qos.logback
logback-classic
1.2.3
编写测试类:
package site.uuyy.log; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SLF4j { public static void main(String[] args) { Logger logger=LoggerFactory.getLogger(SLF4j.class); logger.info("slf4j"); } }
在slf4j中还有桥接器的概念,具体参考 http://www.slf4j.org/legacy.html,以下注释为个人理解
org.slf4j
log4j-over-slf4j
1.7.25
5. 其他 logback,simple-log,log4j2 等等
6. 图像描述

7. Spring中的日志
spring5使用的spring的jcl(spring改了jcl的代码)来记录日志的,但是jcl不能直接记录日志,采用循环优先的原则
spring4当中依赖的是原生的jcl 即 common-logging.jar
spring 的jcl 默认使用的为jul
8. Mybatis的日志
mybatis 默认使用slf4j,如果没有则也会采用循环有限的原则,与spring正整合时,如果没有使用slf4j,默认会使用jcl来打印日志
有图为证

9. 项目结构 及github地址

github地址:https://github.com/wanghaizhang/blogproject/tree/master/java_log
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227425.html原文链接:https://javaforall.net
