java日志框架系列(5):logback框架appender详解
1.appender
1.什么是appender

2.AppenderBase

public synchronized void doAppend(E eventObject) {
// prevent re-entry.
if (guard) {
return; }
try {
guard = true;
if (!this.started) {
if (statusRepeatCount++ < ALLOWED_REPEATS) {
addStatus(new WarnStatus(
"Attempted to append to non started appender ["
+ name + "].", this));
}
return; }
if (getFilterChainDecision(eventObject) == FilterReply.DENY)
{
return; }
// ok, we now invoke derived class' implementation of append
this.append(eventObject);
} catch (Exception e) {
if (exceptionCount++ < ALLOWED_REPEATS) {
addError("Appender [" + name + "] failed to append.", e);
}
} finally {
guard = false; } }
通过代码可以知道AppenderBase类是的doAppender()是同步线程安全的;并不是所有时候都需要同步,因此当不需要同步的时候可以使用UnsynchronizedAppenderBase类。
3. logback-core
logback-core模块是logback的基础。下面讲解一下可以直接使用的appender。
1.logback-core模块中的appender
logback-core模块中的appender种类:OutputStreamAppender、ConsoleAppender、FileAppender、RollingFileAppender。
你有没有发现:logback-core中的appender的目的地都是本地啊,那有没有可以发送到网络上的appender呀,当然有,在logback-classic模块中,下一节介绍。
这些appender之间的关系如下所示:

1.OutputStreamAppender讲解
2.ConsoleAppender讲解
这些属性是需要配置的,因此我们可以通过在xml配置文件中的<appender>标签中创建以属性名为标签名的标签,并为这些标签进行配置。
注意:<appender>中不同的class属性值表明使用不同的目的地,因此会有不同的参数,从而表现出在配置文件中的标签有所差异。
3.FileAppender讲解


这些属性是需要配置的,因此我们可以通过在xml配置文件中的<appender>标签中创建以属性名为标签名的标签,并为这些标签进行配置。
注意:<appender>中不同的class属性值表明使用不同的目的地,因此会有不同的参数,从而表现出在配置文件中的标签有所差异。
4.RollingFIleAppender讲解
1.实现滚动记录原理


这些属性是需要配置的,因此我们可以通过在xml配置文件中的<appender>标签中创建以属性名为标签名的标签,并为这些标签进行配置。
注意:<appender>中不同的class属性值表明使用不同的目的地,因此会有不同的参数,从而表现出在配置文件中的标签有所差异。
1.最受欢迎的滚动策略TimeBaseRollingPolicy

下面讲解一下fileNamePattern的部分值及作用:




注意:所有“\”和“/”都被解释为目录分隔符。任何需要的目录都会被创建。所以你可以轻松地把记录文件放到不同的目录。
4.logback-classic
在logback-classic模块中也存在一些appender,并且这些appender的目的地不是本地。下面详细了解一下这些appender。
logback-classic模块中的appender分类:SocketAppender、DBAppender、SMTPAppender、SyslogAppender、SiftingAppender以及基于JMS的两种Appender(JMSTopicAppender和JMSQueueAppender,他们继承自JMSAppenderBase类);提供了总共7种appender;另外还可以自定义appender,需要通过继承AppenderBase来实现自定义的appender。
java日志框架系列(5):logback框架appender详解的更多相关文章
- Java容器解析系列(6) Queue Deque AbstractQueue 详解
首先我们来看一下Queue接口: /** * @since 1.5 */ public interface Queue<E> extends Collection<E> { / ...
- Java容器解析系列(4) ArrayList Vector Stack 详解
ArrayList 这里关于ArrayList本来都读了一遍源码,并且写了一些了,突然在原来的笔记里面发现了收藏的有相关博客,大致看了一下,这些就是我要写的(╹▽╹),而且估计我还写不到博主的水平,这 ...
- 深入理解JAVA I/O系列三:字符流详解
字符流为何存在 既然字节流提供了能够处理任何类型的输入/输出操作的功能,那为什么还要存在字符流呢?容我慢慢道来,字节流不能直接操作Unicode字符,因为一个字符有两个字节,字节流一次只能操作一个字节 ...
- 《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)
1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对 ...
- logback 常用配置详解<appender>
logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...
- logback 常用配置详解(二) <appender>
logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...
- 【山外笔记-工具框架】iperf3网络性能测试工具详解教程
[山外笔记-工具框架]iperf3网络性能测试工具详解教程 本文下载链接 [学习笔记]iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性 ...
- Farseer.net轻量级开源框架 入门篇:添加数据详解
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 分类逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 ...
- Farseer.net轻量级开源框架 入门篇:修改数据详解
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 删除数据详解 ...
- Farseer.net轻量级开源框架 入门篇:删除数据详解
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 查询数据详解 ...
随机推荐
- java1.8新特性之stream流式算法
在Java1.8之前还没有stream流式算法的时候,我们要是在一个放有多个User对象的list集合中,将每个User对象的主键ID取出,组合成一个新的集合,首先想到的肯定是遍历,如下: List& ...
- notepad++修改背景色
- ROS中make_plan服务的使用
路径规划:从一个点到另一个点,规划出最优的路线.用到service :make_plan (nav_msgs/GetPlan) 服务名为move_base_node/make_plan nav_msg ...
- ie 使用window.open页面报错
window.open(url)打开新页面是如果要通过地址栏来传参要注意 var qt = ""; qt += "&teachMaterialDealInfo.b ...
- Homebrew 使用国内镜像
在国内的网络环境下使用 Homebrew 安装软件的过程中,可能会长时间卡在 Updating Homebrew ... 方法一:按command + c 取消本次更新操作,直接安装软件 方法二:设置 ...
- case设计及验证:入口+页面+展示
测试个性CB问题, 功能整体结构为:入口+页面+展示 总结: 1. 产品文档为主,其次是服务端接口返回.数据结构及字段值确认.结合实际场景检查是否有遗漏或不合理. 2. 以字段为维度,每个字段的检查点 ...
- Java 中的JSON 字符串
类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库. 下面是几个常用的 JSON 解析类库: Gson: 谷歌开发的 JSON 库,功能十分全面. FastJson: 阿 ...
- Windows 下 把EXE 程序变成服务运行
1. 下载 instsrv.exe 和 srvany.exe 我下载的地址 [点击打开链接][https://www.cr173.com/soft/64394.html] 2. cmd cd ...
- Keil综合(03)_map文件全解析[转]
推荐分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:ht ...
- ArcGIS 10.5 tensorflow安装日记
ArcGIS 10.5 tensorflow安装日记 商务科技合作:向日葵,135-4855__4328,xiexiaokui#qq.com Datetime: 2019年5月27日星期一 Os: w ...