00:00
好,接下来呢,我们实际的制定一下etm拦截器和对应的分类型拦截器。那我们先创建一个工程吧,创建一个intercept这个工程的名称啊,你可以是任意的去名字的,那这里面我们定一个啊。打开创建一个工程一个。Next下一步home.at硅谷BM。Nice,下一步。OK。创建完工程之后啊,哎,我们要创建一个报名。对吧,哎,创立一个包,创建一个什么包呢?创建一个com.i.intercept啊,这个包名啊,要注意这个包名要跟你前面flu的配置文件当中。这块。
01:01
哎,这块要一致,因为未来呀,我们会放在这个intercept的类名,对吧?哎,如果你后面那个报名了,那你记得这块呢,要同步的修改啊,行,那我们拿过来这里面我就让他尽量保持一致。拿过来。右键。创建一个pack OK,搞定,搞定之后下面往下看,在它的对应的po文件当中,我们需要添加两样内容,第一项内容我们要用到,对吧?哎,那我们这里面就得把这个添加进来。那这个版本号要注意哈,呃,咱们idea里面版本一定要跟Linux环境下对应的版本要一致。不一致的话,容易出现一些啊意想不到的一些bug,哎,尽量让他俩兼容啊好,这是这一块,那再往下呢,下面有对应的这个插件对吧?哎,打包插件这个插件啊啊我们并不陌生,在我们之前讲孩子过程当中,哎,多次使用跟那个插件呢,是一模一样的哈,那这里面我们就直接拿过来了。
02:10
把它放到这个对应的po文件里面上去。OK。之后回来。那下面呢,我们来创建一个类名。Log e。那快速回忆一下,我们定一个拦截器的步骤,对吧。叫定一个类。第一个类之后呢,实现intercept接口。大写的啊。In cpq2,那这里面要注意这个intercept接口啊,I包一定不要导错了,导包下的啊,导它OK out加回车实现四个方法对吧?哎,四个方法分别是初始化,单一文的处理,多一文的处理以及close,那在这里面我们主要处理的是这两个方法,好,那首先进到这里面,在这个方法里面我们要做什么事?
03:09
首先要搞清楚这件事对吧,哎,我们在这里面要做这么一件事,嗯。首先啊,我得获取这个数据啊,我得把这个数据拿拿过来呀,获取数据,那数据长什么样,我们来看一下数据长这样。这是我们采集的日文件。那这里面你看一下啊,看一下这个。是啥呀?这是前面的电话,这个时间戳拼上对应的介,那你看这这个呢。这呢是大括号开头,大括号结尾,也是对应的启动日志,上面呢是事件日志,也就说你有两类日志。那么这两类日志它的ETL清洗规则能一样吗?不一样对吧?哎,不一样,那我们想办法要分两种方式去判断,如果是事件日志我们怎么判断,如果是启动日志我们再怎么判,是这样一个过程吗?好,那首先我们先获取这个数据,那获取数据怎么获取呢?even.get body,哎,这个是获取传递过来的数据到底,但是啊,你发现获取过来之后呢,它是一个字节数组。
04:18
不方便我们的一个处理,那我们什么样的这个。方便怎么处理呢?哎,我们可以把它转换成实例又一个,哎,通过使劲支符串的方式来处理,那这里面我们处理一下它的支付编码集啊,Farsh啊,For。UTF杠八,哎,那它。加。OK,返回值,Love OK。这样呢,我们就拿到了对应的这个日志,比如说日志文件呢,其实就这些已经有了,有这种有事件日志,有启动日志,那你下面要做的事情就要分别去验证,对吧。
05:03
分别验证启动日志。和事件认知。那怎么验证啊,那这里面其实它有明显的一个标记啊。在启动日志当中,它的事件类型是start。那你说只要这个日志里面包含start不就完了吗?那有同学可能说,哎,那在事件日志里面是不是也有可能出现这个star呢?哎,正常情况下是不会出现的,而且我们在代码规范里面会明确要求事件日志里面不能出现star,如果实现star,可以把它进行一个转移。对吧,哎,替换成其他支符,然后再进行预算啊,所以说这里面是有呃要求的哈,行,那我就默认了,这个启动日志里面有star,其他日志里面都没有啊,那判断呗,哎,判断说log。点contains包,如果说它包含对吧,那就说明这里面我要验的是。
06:06
启动日志,好,那再来。如果不包含启动日志,那就说明这块我要校验的是时间日志。好,这不就完了吗?哎,就这么简单,那这里面要注意一下校验启动日志,那怎么校验呢?有同学说我在这里面就开始写校验代码呗,哎,通常情况下写代码啊,我们要进行一个封装,对吧?哎,把这个校验过程放到这个其他类里面进行一个校验,比如说我们可以写一个工具类if。Love。Loves.valid验证。Star,有人说你这个类没有啊,你这个方法也没有啊,哎,这个写代码呢,你先把这个思路写出来,对吧,先往这一放,没有的话我们可以照啊,哎,缺啥补啥,这是一个比较好的写代码方式,哎,好,那这块如果说它是一个启动人士,那我们怎么办?Return return event,哎,把这条日志返回。
07:16
那再来下面e love。点moli event,同样道理,我们也传进去log,哎,这块呢是如果校验成功,那我也返回对应的event,那如果这两个都校验失败。那返回什么,哎,返回空啊啊返回空,后续的话呢,只要他数据返回空,我就把这条日志给它过滤掉。就完了,哎,正常情况下呢,返回行,那这两个缺一个类啊,怎么办呢?Out加回车。哎,你不缺一个类吗?那我另一创建一个类,那下面类有了,那里面的方法呢?Out,加回车继续创建。
08:08
哎,你看。再来那下面事件日志校验。了,现在我把这个分。
我来说两句