log4j
apache推出的一款老牌日志框架(已经放弃维护)
pom.xml
1  | 
  | 
LogManager
1  | 
  | 
RepositorySelector
1  | 
  | 
LoggerRepository
1  | /*  | 
Logger
1  | 
  | 
Category
1  | public class Category implements AppenderAttachable  | 
AppenderAttachable
1  | 
  | 
数据统一由Logmanager进行管理
但是Logmanager 就不好扩展了,于是 集成一个 LogRepository 来管理logger和其他appender, LogManager只提供算法, 但还是不是特别扩展,于是抽出一个策略接口 RepositorySelector,用它来具体获取 要使用那个LogRepository ,(工厂模式,策略模式,模板方法,)
对于这种管理 一个主要对象的模式, 聚合一个策略接口是一种很好的选择
Layout
1  | 
  | 
AppenderSkeleton
1  | 
  | 
OptionHandler
1  | 
  | 
Appender
1  | //为您自己的输出日志语句的策略实现这个接口。  | 
获取logger
1  | 模式的logger工厂是DefaultCategoryFactory  | 
父子关系
1  | final  | 
记录操作
1  | public  | 
使用:
1  | 
  | 
日志级别
1  | 
  | 
组件
loggers
日志记录器
appenders
日志处理(输出)器
1  | ConsoleAppender //日志输出到控制台  | 
layout
日志格式化器
1  | HtmlLayout //格式化成html表格形式  | 
配置文件
1  | static {  | 
解析logger
1  | 
  | 
解析appender
1  | Appender parseAppender(Properties props, String appenderName) {  | 
Log4j内置Loglog
1  | 
  | 
Layout语法说明
1  | 
  | 
FileAppender
1  | 
  | 
RollingFileAppender
1  | 
  | 
ExternallyRolledFileAppender
1  | #继承 RollingFileAppender  | 
DailyRollingFileAppender
1  | 继承FileAppender  | 
JDBCAppender
1  | 
  | 
自定义logger
1  | 
  | 
- 本文作者: 忘忧症
 - 本文链接: https://NepenthesZGW.github.io/2020/03/20/framework/log/Log4j/
 - 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
 
		