2019-07-03 log4j2 自定义ElasticSearch Appender

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-07-03 log4j2 自定义ElasticSearch Appender相关的知识,希望对你有一定的参考价值。

参考技术A 通过自定义appender可实现日志系统日志直接存储到ES

log4j2 提供了抽象类AbstractAppender,通过继承抽线类可实现自定义appender

例如:实现ElasticSearchAppender保存日志

@Plugin注解实现定义appender名称,即log4j2.xml配置文件中配置时使用的appender名称,例:

插件构建注解,定义创建appender逻辑。通过@PluginAttribute、@PluginElement 定义配置文件可传入的参数值。

通过重写append方法实现自定义日志操作,例如日志格式化,存储逻辑自定义。

简单的自定义appender实现方式,实际封装还可以考虑异步收集,批量收集、失败重试等功能完善。

Android 自定义View

参考技术A 1.直接在XML文件中定义的 ==》布局文件。
2.在XML文件中通过style这个属性定义的 ==》在布局中使用自定义属性样式。
3.通过defStyleAttr定义的 ==》在View的构造方法中使用自定义属性样式。
4.通过defStyleRes定义的 ==》在View的构造方法中使用自定义样式。
5.直接在当然工程的theme主题下定义的 ==》AndroidManifest.xml中设置。

1、onMeasure 测量自身,自定义View时重写,定义控件的宽高,常在自定义的View中使用
2、Measure 测量自身,方法不可重写,内部调用onMeasure方法,常在自定义的ViewGroup中使用
3、measureChild 测量某个子View,内部调用Measure方法,常在自定义的ViewGroup中使用
4、measureChildren 测量所有子View,内部调用measureChild方法,常在自定义的ViewGroup中使用

在自定义View的开发中,我们重写测量方法,方法里的传参(widthMeasureSpec,heightMeasureSpec)都是由父类提供的,在自定义ViewGroup的开发中,我们可以根据当前布局的测量参数,为布局内的子控件创建新的测量参数,来控制子View在布局的显示大小

1、layout:指定View新的显示位置,用法:view.layout(left,top,right,bottom);
2、onLayout:设置View的显示位置,用法:重写该方法,定义View的显示规则
3、requestLayout:强制View重新布局,用法:view.requestLayout();

onFinishInflate -> onAttachedToWindow -> onMeasure -> onSizeChanged -> onLayout -> onDraw -> onDetachedFromWindow

Android的事件分发可以理解为向下分发,向上回传,类似V字型,V字的左边是事件进行向下分发,如果途中没有进行事件的分发拦截,则事件传递到最底层的View,即是最接近屏幕的View。V字的右边是事件的回传,如果中途没有进行事件的消费,则事件传递到最顶层的View,直至消失。

以上是关于2019-07-03 log4j2 自定义ElasticSearch Appender的主要内容,如果未能解决你的问题,请参考以下文章

如何在 log4j2 中创建自定义 Appender?

教你打印自己的日志 -- 如何自定义 log4j2 各组件

如何在log4j2中创建自定义Appender?

使用 slf4j 绑定自定义 log4j2 包装器

log4j2自定义动态配置日志

如何使用 Spring Boot 设置 log4j2 自定义附加程序?