slf4j、log4j使用总结
来源:互联网 发布:易方平板 知乎 编辑:程序博客网 时间:2024/06/07 19:04
- slf4j+log4j组合使用的pom依赖
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version></dependency><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>
- 主要元素
log4j.rootLogger or log4j.rootCategory log4j.logger.${appenderName} org.apache.log4j.ConsoleAppender org.apache.log4j.FileAppender org.apache.log4j.DailyRollingFileAppender org.apache.log4j.RollingFileAppender log4j.appender.${appenderName}.layout org.apache.log4j.SimpleLayout org.apache.log4j.HTMLLayout org.apache.log4j.xml.XMLLayout org.apache.log4j.TTCCLayout org.apache.log4j.PatternLayout(常用) log4j.debug log的log日志输出 log4j.appender.${appenderName}.Threshold log4j.appender.${appenderName}.layout.ConversionPattern #%m——输出代码中指定的消息#%p——输出优先级,即DEBUG、INFO、WARN、ERROR、FATAL#%r——输出自应用启动到输出该log信息耗费的毫秒数#%c——输出所属的类目,通常就是所在类的全名#%t——输出产生该日志事件的线程名#%n——输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"#%d——输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式#比如:%d{yyy MMM dd HH:mm:ss},输出类似:#2015年7月21日 12:12:12,921#%l——输出日志事件的发生位置,包括类目名、发生的线程、以及在代码中的行数#%X{ip}: MDC。#%%: 输出一个"%"字符#%F: 输出日志消息产生时所在的文件名称#%L: 输出代码中的行号(%l已包含了行号)#此配置是PatternLayout对应的 其他的layout配置 会出现警告日志 ● log4j.additivity.${appenderName} 设置父类输出
- logger的继承
og4j.additivity 只是appender时过滤并不影响log4j的继承
log4j配置动态修改配置文件 PropertyConfigurator configure/configureAndWatch
log4j的MDC NDC,我们日志中心的上下文实现
slf4j的format
- 应用程序中获取日志的初始化流程
- 日志LogManager的加载
- 日志属性的处理
- 打印日志输出逻辑, 以debug为例
- 核心类/接口
○ Logger对记录日志动作的抽象,它提供了记录不同级别日志的接口 ○ RootLogger在Log4J中,所有Logger实例组成一个单根的树状结构,没有父节点,其Level字段必须设值以防止其他Logger实例都没有设置Level值的情况 ○ LoggerRepository、Logger实例的容器 其实现类 Hierarchy ○ Level 日志级别抽象 ○ LoggingEvent 日志信息 ○ Appender 输出 ○ Layout 输出的格式 ○ LogManager 将Configurator和LoggerRepository整合在一起
- 核心类图
- 扩展
自定义appender ,通过继承AppenderSkeleton
自定义layout,自定义Layout
- 源码中使用的设计模式
1、适配器模式 logger的封装 Log4jLoggerAdapter
2、单例模式 StaticLoggerBinder
3、工厂模式 ILoggerFactory
4、外观模式 Logger
5、解释器模式 PatternLayout
6、空对象模式 NullAppender 很多时候对象为null也是正常的,但是这个null会导致使用过程中的空指针异常,因此需要使用的地方,在每次使用前都要判断下是否为null,然后再使用,使用空对象可以免去繁琐的判断
阅读全文
0 0
- slf4j、log4j使用总结
- SLF4J和log4j的使用总结
- slf4j+log4j+logback总结
- slf4j+log4j+logback总结
- slf4j、log4j 的使用
- slf4j、log4j 的使用
- slf4j+log4j使用
- slf4j+log4j使用
- slf4j + log4j使用
- slf4j+log4j使用
- 使用slf4j+log4j
- SLF4J与Log4j整合使用
- slf4j+log4j的初次使用
- log4j和slf4j的使用
- Java日志 Log4j+slf4j使用
- SLF4J和log4j的使用
- SLF4J和log4j的使用
- SLF4J和log4j的使用
- jsp中转发与重定向的区别
- 权限系统--用户管理
- 机房之权限窗体分类
- 关于vue的一些总结
- 关于List中删除元素
- slf4j、log4j使用总结
- java复习-对象与类
- RTOS实时操作系统学习笔记之qnx嵌入式系统qnx系统
- 重载与重写的区别
- js随记-如何将文本框设置为不可编辑
- 【Hibernate】悲观锁和乐观锁
- 牙齿-菠菜
- MFC 在光标所在位置输入文字(不同应用程序之间)
- QNX实时操作系统学习笔记之嵌入式系统