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 许可协议。转载请注明出处!