- 浏览: 957148 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
在使用slf4j的时候,只需要通过门面类LoggerFactory类获取Logger
实际上,这种方式会得调用另外一个类
注意看的是 return StaticLoggerBinder.getSingleton().getLoggerFactory();
实际上,它真正的方式是通过 org.slf4j.impl.StaticLoggerBinder
,但是,StaticLoggerBinder类在slf4j包中是不存在的。
这实际上就是slf4j的能自动识别实际上的logger日志的原理了。
它调用这个类,这个类,slf4j有一个大概的雏形,但是没有实现,(需要保证slf4j本身编译不报错)。也没有被打包成jar里面,而是由具体的实现该类的,比如log4j等自己实现这个类,并加入具体的jar。那么在实际运行时,就能调用到真实的日志包了。
/** * Return a logger named according to the name parameter using the statically * bound {@link ILoggerFactory} instance. * * @param name The name of the logger. * @return logger */ public static Logger getLogger(String name) { ILoggerFactory iLoggerFactory = getILoggerFactory(); return iLoggerFactory.getLogger(name); } /** * Return a logger named corresponding to the class passed as parameter, using * the statically bound {@link ILoggerFactory} instance. * * @param clazz the returned logger will be named after clazz * @return logger */ public static Logger getLogger(Class clazz) { return getLogger(clazz.getName()); }
实际上,这种方式会得调用另外一个类
/** * Return the {@link ILoggerFactory} instance in use. * <p/> * <p/> * ILoggerFactory instance is bound with this class at compile time. * * @return the ILoggerFactory instance in use */ public static ILoggerFactory getILoggerFactory() { if (INITIALIZATION_STATE == UNINITIALIZED) { INITIALIZATION_STATE = ONGOING_INITIALIZATION; performInitialization(); } switch (INITIALIZATION_STATE) { case SUCCESSFUL_INITIALIZATION: return StaticLoggerBinder.getSingleton().getLoggerFactory(); case NOP_FALLBACK_INITIALIZATION: return NOP_FALLBACK_FACTORY; case FAILED_INITIALIZATION: throw new IllegalStateException(UNSUCCESSFUL_INIT_MSG); case ONGOING_INITIALIZATION: // support re-entrant behavior. // See also http://bugzilla.slf4j.org/show_bug.cgi?id=106 return TEMP_FACTORY; } throw new IllegalStateException("Unreachable code"); }
注意看的是 return StaticLoggerBinder.getSingleton().getLoggerFactory();
实际上,它真正的方式是通过 org.slf4j.impl.StaticLoggerBinder
,但是,StaticLoggerBinder类在slf4j包中是不存在的。
这实际上就是slf4j的能自动识别实际上的logger日志的原理了。
它调用这个类,这个类,slf4j有一个大概的雏形,但是没有实现,(需要保证slf4j本身编译不报错)。也没有被打包成jar里面,而是由具体的实现该类的,比如log4j等自己实现这个类,并加入具体的jar。那么在实际运行时,就能调用到真实的日志包了。
发表评论
-
java实现socks5
2019-07-16 23:05 1712socks5的基础知识 关于socks5的定义]https: ... -
java Runtime.exec方法详解
2019-07-11 14:11 21431.关于CMD(为了让exec ... -
Spring 定时任务,cron表达式,@Scheduled cron表达式
2016-04-25 15:48 5296一个cron表达式有至少6 ... -
xulrunner
2016-01-13 13:07 663http://ftp.mozilla.org/pub/xulr ... -
谈一谈自己对依赖、关联、聚合和组合之间区别的理解
2015-11-17 16:05 775在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系 ... -
java apache common unicode处理
2015-09-19 15:17 1557if (UnicodeConvertType.中文转unico ... -
jdbc ssh通道
2015-09-17 14:40 1853java通过ssh链接数据库,需要用到 JSCH是一个纯粹的用 ... -
swt 窗口 最大化最小化按钮设置等
2015-09-14 17:53 4302窗体顶部菜可以在实例化的时候设置,也可以单独设置:Shell ... -
java.lang.Process调用程序阻塞问题解决
2015-08-14 10:56 4250这两天一直在处理flv视频环境的搭建工作,包括服务器的安 ... -
java html解析
2015-07-31 17:31 1200dom解析是常用dom4j。 android中我们常用的是sa ... -
java - 比较时间-相差月数
2015-06-15 09:57 1454Date经常会出现比较两个Date相差的月数,实际上可以做一个 ... -
log4jdbc
2014-12-25 13:55 3043该框架目前支持到jdbc3.和jdbc4的版本。 提供了多种 ... -
jdbc规范 jdbc1 jdbc2 jdbc3 jdbc4
2014-12-25 13:49 5046目前jdbc规范已经升级到 ... -
反射,代理,动态java原理
2014-12-22 16:44 1113需要两个类,用于下面的测试 package test; ... -
Bean Validation 1.0(JSR-303)
2014-11-18 16:15 1087http://jinnianshilongnian.iteye ... -
JRE最小化原理
2014-10-15 20:19 1299比如我们一个程序只用到了很少的类,像String,Intege ... -
时间重叠的判断
2014-02-14 11:16 1644如上图,粗线是时间1 细线是时间2 时间重叠,只可能是以上四 ... -
java获取当前类的绝对路径
2013-12-14 00:37 8951.如何获得当前文件路径 常用: (1).Test.class ... -
枚举 enum
2013-12-13 16:52 5225java的enum其实是一个类。编译器根据你enum的定义会为 ... -
EL表达式,ognl表达式对集合过滤和投影
2013-11-23 11:48 1201GONL<s:property value=" ...
相关推荐
SLF4J的设计理念是遵循门面模式,将复杂的日志实现细节隐藏起来,提供一个简洁的API供用户使用。 门面模式是一种设计模式,它提供了一个统一的接口,使得子系统更加易于使用。在SLF4J中,这个接口就是一系列的日志...
SLF4J(Simple Logging...深入研究SLF4J源码可以帮助我们理解其工作原理,更好地利用这个强大的日志门面。对于想要学习日志管理、软件设计模式或想了解如何编写简洁易用的API的开发者来说,SLF4J源码是一个宝贵的资源。
接下来,我们来看Slf4j,这是一个日志门面,它提供了一种简单的方式来为我们的应用程序选择合适的日志实现。Slf4j允许开发者在部署时通过Maven或类路径中的桥接器替换日志实现,如Log4j、Logback等。使用Slf4j的好处...
让系统中所有的日志都统一到 SLF4j 的做法是将系统中其他日志框架的日志实现统一到 SLF4j 中,然后使用 SLF4j 来打印日志。这样可以减少系统中的日志实现复杂度,提高系统的可维护性。 在使用 SLF4j 时,需要注意的...
- **使用SLF4J**:SLF4J作为日志门面,可以与多种实际日志实现无缝集成。 - **使用Log4J**:传统的日志实现,仍被广泛使用。 #### 二、Spring 4.x的新特性 ##### 2.1 显著改进 - **改善的入门体验**:通过简化...
8. slf4j-api-x.x.x.jar和slf4j-log4j12-x.x.x.jar:简单日志门面SLF4J和它的Log4j实现,用于记录应用日志。 9. log4j-x.x.x.jar:Log4j库,提供灵活的日志记录功能。 10. jstl-x.x.x.jar和taglibs-standard-x.x.x....
- `slf4j-api.jar` 和 `slf4j-log4j12.jar`,SLF4J是日志门面,可绑定到多种日志实现,如Log4j。 - `commons-lang3.jar`,Apache Commons提供的语言工具类库。 - `commons-io.jar`,处理I/O操作。 - `commons-...
SSH2的运行还需要一些基础库,如`log4j.jar`用于日志记录,`commons-logging.jar`提供日志接口,`javassist.jar`是Hibernate的动态代理库,`slf4j-api.jar`和`slf4j-log4j12.jar`是简单日志门面(SLF4J)的实现,`...
9. slf4j-api:简单日志门面,可以适配多种日志实现。 10. logback-classic:一种常用的日志实现,配合SLF4J使用。 这些jar包的集合为搭建一个基于Spring4.0和Mybatis3.0的应用程序提供了所有必需的依赖。在实际...
-- SLF4J 日志门面 --> <groupId>org.slf4j <artifactId>slf4j-log4j12 ${slf4j.version} ``` ##### 3.2 配置文件 在整合过程中,通常会使用两个主要的配置文件: - **spring-mybatis.xml**: 包含 Spring ...
- **使用SLF4J**:SLF4J是一个日志门面,可以方便地切换底层的日志实现,如Logback或Log4j。 - **使用Log4J**:Log4J是一个成熟的日志框架,文档提供了如何配置Log4J以配合Spring使用的示例。 #### Spring 4.x的新...
- **使用SLF4J:** SLF4J是一个日志门面,用于抽象不同的日志实现。 - **使用Log4J:** Log4J是Apache的一个开源日志框架,广泛应用于Java应用程序中。 #### II. Spring 4.x的新特性和增强功能 **3. Spring 4.0...
4. 其他依赖库,如`commons-logging.jar`, `log4j.jar`,用于日志记录,还有可能包括`javassist.jar`(Hibernate的字节码处理库)和`slf4j-api.jar`(简单日志门面)等。 学习SSH项目时,这些jar包是必不可少的,...
- **用途**:SLF4J(Simple Logging Facade for Java)是一个日志门面库。 - **作用**:为不同的日志实现提供了一个统一的接口,便于日志框架的切换。 #### 36. **standard-1.1.2.jar** - **用途**:通常指JSTL...