diff --git a/Java三方库/logback.md b/Java三方库/logback.md
new file mode 100644
index 00000000..5db64e68
--- /dev/null
+++ b/Java三方库/logback.md
@@ -0,0 +1,427 @@
+
+## 1 简介
+
+### 日志组件
+
+logback是一个开源的日志组件,是log4j的作者开发的用来替代log4j的。logback由三个部分组成,logback-core, logback-classic, logback-access。
+
+* 其中logback-core是其他两个模块的基础。
+* logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API,使我们可以在其他日志系统,如log4j和JDK14 Logging中进行转换
+* logback-access:访问模块和Servlet容器集成,提供通过Http来访问日志的功能
+
+
+### 日志级别
+级别包括:TRACE < DEBUG < INFO < WARN < ERROR
+
+### 配置流程
+
+1. 添加maven依赖
+2. 查找配置文件。logback-spring.xml、logback.xml、BasicConfigurator。
+3. 加载配置内容。configuration
+
+```xml
+
+
+
+```
+
+### maven依赖
+
+```xml
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.21
+
+
+
+ ch.qos.logback
+ logback-core
+ 1.1.7
+
+
+ ch.qos.logback
+ logback-classic
+ 1.1.7
+
+```
+
+
+
+## 2 配置内容
+
+### configuration
+日志配置的根节点
+
+```
+
+```
+
+
+### contextName
+
+是的子节点。各个logger都被关联到一个loggerContext中,loggerContext负责制造logger,也负责以树结构排列个logger。
+
+
+
+```
+atguiguSrb
+```
+### property
+
+是的子节点,用来定义变量。
+
+ 有两个属性,name和value:name的值是变量的名称,value是变量的值。
+
+通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。
+
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### appender
+``是``的子节点,是负责写日志的组件.主要用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、MySQL、PostreSQL、Oracle和其他数据库、JMS和远程UNIX Syslog守护进程等。
+
+不同的appender有不同的属性可以配置
+
+
+### ConsoleAppender
+* ``有两个必要属性name和class:name指定appender名称,class指定appender的全限定名
+* ``对日志进行格式化
+ * ``定义日志的具体输出格式
+ * ``编码方式
+
+```xml
+
+
+ ${log.path}/log.log
+ true
+
+ ${CONSOLE_LOG_PATTERN}
+ ${ENCODING}
+
+
+```
+
+输出模式说明
+* 输出模式:%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
+* 输出模式解释:时间日期格式-调用的线程-日志界别-调用对象-日志信息-换行
+
+```
+%d{HH:mm:ss.SSS}:日志输出时间(red)
+%thread:输出日志的进程名字,这在Web应用以及异步任务处理中很有用 (green)
+%-5level:日志级别,并且使用5个字符靠左对齐 (highlight高亮蓝色)
+%logger:日志输出类的名字 (boldMagenta粗体洋红色)
+%msg:日志消息 (cyan蓝绿色)
+%n:平台的换行符
+```
+
+### FileAppender
+
+* ``表示日志文件的位置,如果上级目录不存在会自动创建,没有默认值。\
+* ``默认 true,日志被追加到文件结尾,如果是 false,服务重启后清空现存文件。
+```xml
+
+
+ ${log.path}/log.log
+ true
+
+ ${FILE_LOG_PATTERN}
+ ${ENCODING}
+
+
+```
+
+### RollingFileAppender
+表示滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将旧日志备份到其他文件
+
+* ``是``的子节点,用来定义滚动策略。
+
+* TimeBasedRollingPolicy:最常用的滚动策略,根据时间来制定滚动策略。
+
+* ``:包含文件名及转换符, “%d”可以包含指定的时间格式,如:%d{yyyy-MM-dd}。如果直接使用 %d,默认格式是 yyyy-MM-dd。
+* ``:可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且``是6,则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除。
+
+```xml
+
+
+ ${log.path}/log-rolling.log
+
+ ${FILE_LOG_PATTERN}
+ ${ENCODING}
+
+
+
+
+ ${log.path}/info/log-rolling-%d{yyyy-MM-dd}.log
+
+ 15
+
+
+
+
+```
+
+* 放在``的子节点的位置,基于实践策略的触发滚动策略``设置触发滚动条件:单个文件大于100M时生成新的文件
+
+### logger
+
+``可以是``的子节点,用来设置日志打印级别、指定``
+
+
+* name:用来指定受此logger约束的某一个包或者具体的某一个.
+* level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF。默认继承上级的级别
+* logger日志级别。级别包括:TRACE < DEBUG < INFO < WARN < ERROR,定义于ch.qos.logback.classic.Level类中。如果logger没有被分配级别,name它将从有被分配级别的最近的父类那里继承级别,root logger默认级别是DEBUG。
+* ``可以包含零个或多个``元素,标识这个appender将会添加到这个logger
+
+```xml
+
+
+
+
+
+```
+
+* logger的取得:通过org.slf4j.LoggerFactory的getLogger()方法取得。getLogger(Class obj)方式是通过传入一个类的形式来进行logger对象和类的绑定;getLogger(String name)方式是通过传入一个contextName的形式来指定一个logger,用同一个名字调用该方法获取的永远都是同一个logger对象的引用。
+## 3 配置文件
+
+### 配置文件实例
+
+```xml
+
+
+
+ atguiguSrb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ ${ENCODING}
+
+
+
+
+
+ ${log.path}/log.log
+ true
+
+ ${FILE_LOG_PATTERN}
+ ${ENCODING}
+
+
+
+
+
+
+ ${log.path}/log-rolling.log
+
+ ${FILE_LOG_PATTERN}
+ ${ENCODING}
+
+
+
+
+
+
+ ${log.path}/info/log-rolling-%d{yyyy-MM-dd}.%i.log
+
+ 15
+
+
+ 1KB
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### 配置文件实例
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.filePath}/debug.log
+
+
+
+
+ ${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz
+
+
+ ${log.maxHistory}
+
+
+ ${log.pattern}
+
+
+
+
+ DEBUG
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+ ${log.filePath}/info.log
+
+
+
+
+ ${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz
+
+
+ ${log.maxHistory}
+
+
+ ${log.pattern}
+
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+ ${log.filePath}/error.log
+
+
+
+
+ ${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz
+
+
+ ${log.maxHistory}
+
+
+ ${log.pattern}
+
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
\ No newline at end of file