spring 布的的常见问题解决方法在解决 spring 布的相关的问题时,可以考虑以下方法,一、 日志记录,通过增加日志记录来追踪问题的发生点,这对于诊断问题非常有用。二、异常捕获使用踹 catch 快来捕获可能的异常,并通过日志记录异常信息。三、配置审查 定期审查应用的配置文件,确保所有配置项都是必要的,并且没有遗漏重要的配置。四、性能分析,使用性能分析工具来识别和解决性能瓶颈, 例如使用 pro 翻脸工具来分析应用的异性情况。五、社区知识当遇到难以解决的问题时,可以寻求 社区的帮助。 spring boot 社区火院,且乐于助人。六、性能优化对于大型项目可以考虑不属于 spring boot have vacation, 而是通过 as component stand 指定扫描范围, 以减少不必要的变加赛。七、日志管理 spring both 支持多种日志框架,如战乱、 you know logan, lock for jar 和 loga。 可以通过配置文件或环境变量设置日志级别和输出目的地。八、 热不说,虽然波哥支持开发者工具进行热不说,以便在不同仅用的情况下实时刷新代码变动。九、跨越问题可以通过实现为 mvc configure 接口并呈现 at cursemap 方法来解决跨越问题。
粉丝35获赞194

你们有没有过这种情况,在我们日常开发过程中,在测试或者预生产环境,需要打印一些日志,对自己的代码进行调试,但是到了生产环境,为了性能或减少一些磁盘的存储,我们需要调整日志级别。 那么在不重启服务的情况下,我们应该怎么处理呢?这里我通过斯不认布头中的艾克吹特指标监控,对日式级别进行动态修改,看一下代码视力。这是一个斯不认布的项目,这里我引入了艾克吹特,并且对艾克吹特进行了配置, 他的端口默认是八零八零,这里我还定义了一个 ctrl, 这个 ctrl 呢只打印了四行不同级别的日志。咱们可以通过八零八零端口访问一下,看一下 ictreeter, 这是看到他这个页面监控指标,但是咱们这里只关心这个 logs 这个 标。咱们通过页面呢,可以访问看一下咱们现在的 ctrl 级别是 info 级别的,通过 postman 调一下,咱们写这个 log 接口,咱们调一下, 这里看到控制台只打印了音否级别以上的日志。 debug 日志没有打印,因为刚才咱们已经看到了他的默认级别是音否的。 这里呢,咱们就可以通过 postman 调用 ictreeter 对日志级别进行修改。咱们看一眼调用过程,这里可以调用这个地址,然后通过修改它的级别,把它修改成 debug, 然后咱们调用一下, 这也可以,咱们再刷新一下页面,哎,看到了他的级别就是 debug, 那么咱们再重新调一下咱们这个 log 接口发送一下,可以看到这个日志,他已经打印出了 debug 级别的日志,这就是在不重启服务的情况下,动态修改日志级别。小伙伴们还有什么好的方案吗?评论区讨论一下。

大家好,今天这个视频我们一起来看一下。 spring boot 是用 l p 加主解的方式记录日志信息的方法,这种方法既能支持方法级别的日志记录,也能支持配置到内级别。先来看一下最原始的记录日志的方法, 就是直接在业务代码中打入餐和出差信息,这种方法最简单,但也是代码重复最多的方法。 我们来看一下面向情况。下面我加了一个 redote 入餐单元内部和 a, d, d, r 出餐单元内部 a, d, d, r 和 redote, 这是最原始的记录日制的方法, 现在我们就要对这种日志记录进行改造。如果你喜欢这个系列的视频,记得点赞关注,我们还有更多内容等待发布。首先定一个日志 log 主解,给他设置两个属性,一个模块有功能,这里要注意这个他给他 的内容。 element 的态度,白色的代表是对方法,摄像 type 代表是作用的立场,然后建议一个 log aspect, 注意要加这个 aspect 的主解,然后配置置入点 and pass 的意思是扫描所有有这个 log 主解的方法,这是作用在方法上。 vc, 它意思是扫描所有有 log 主角的类,这是作用在类上的。然后 past returning 标识的是处理完前景后执行的逻辑,这有一个 出差,然后结果,然后他四双赢,表示的是蓝天一场操作后沉的逻辑,这有一个异常信息,我在这里边都让他表示这个喊的 log。 这个方法通过不同的参数传入我们就可以获取到了 的信息。首先是获取杜绝对象,我们先从方法上获取给他买赞,获取朱金,如果获取不到的话,那就说明他是 这个类上,就从类上去获取或进入范围千万就是应该是获取范围参数或者是异常,然后是法法的名称,类名,方法名,请求方式处理注解上的参数以及摩擦信息。注解上的参数说的是就是这个胎头和 disney type 蓝信息,然后分为一个是普斯特类的方法,是从这里取的,一个是 get 方法,是这样取的,参数拼接,然后退出保存就可以了。然后我们先来看一下作文的方法上的认证管理, 这个是记录仪式的,也能正常返回,我们看一下返回信息,那么入餐,储餐都是在这个带保存的信息里面,最终这个是要吃酒吧,这个是储餐,这个是入餐。好,我们再返回一下不进行的,这是记录的, 可以看到这下面没有再打印信息,这个方法级别的日打印是用这个 logo 主机,然后在这个方法上进行标识的,这个 今日日审记录插板是没有这个 log 主角。然后我们现在来看类的类级别的,是在类上面加这个 log 主角,它是跟配置植物点的这个微字音是对应的啊,还有关联,这个 log 主角的这个里面的态度点,态度,这三个态度 within 和类上面的 log 主点是对应关系,我们可以看到这里面的方法上面是没有 log 的,这是跟这个方法级别的区别。好,我们先把我们这个日记录制好,这打印出来,这是返回值,这是手册, 这个也是可以的,我们可以在这里边给它抛出一个异常,传一个 a a, a a 传一个零, 可以看到一张信息,也是能进行保存的。 好了,上面就是资源部的使用 a o p 加主解的方式记录日制信息的方法,希望能对大家有所帮助。下个视频见,感谢观看。

今天来讲一下视频部的怎么开启第八个日字,其实就是配置一下就可以了,在这个配置文件,然后添加一下这个这个配置就可以了,我们来演示一下第八个 打这个 id 有这个智能提示的,直接选中就可以了。刚才可以看到默认他是富二十,就是没有开启这个第八个日子,就是启动之后他只有音符日制,现在我们把它设置为这个配置为这个出,然后就配置好了,然后我们再启动一下, 可以看到是他开启了这个第八个日制级别之后,他是打印的比英佛级别更多的这个日制的,其实主要就是把这个第八个这个信息级别的这个日制给打印出来了,然后具体是包含了什么内容的,我们来看一下,就是 首先瞄一眼这个截图,就是第一个是这个第八个这个级别的这个日打印出来了,然后具体包含了什么东西呢?就这几个点。第一个就是他的自动配置有哪一些 视频布的,他的主要的核心的作用和目的就是约定大于配置,就这六个字就是很多配置以前需要你自己去配置的,而且是一些常用的配置,现在的话就是他全部都给你,就是自动的默认的就配置好了,就不需要你去手动的配置了, 这是第一个。第二个就是有哪些这个设备内的这个录音设。第三个是有哪些这个拦截器,我们先看一下这个截图, 首先第一个就是这个有哪些这个比如说这个转发这个收入,收入内的,这个是外部请求的这个一个核心的这个转发收入内的这个内以前的话需要在这个外部场面里面配 制的,现在是不需要配置,自动就已经开启了,就很方便很简单。然后这里也打印的这个 sorene 的这个这个卷发,这个 sorene 这个类,还有是能接气,能接气的话就是这些能接气然后都打印出来了。主要是这几点,我们也可以看一下我们刚才启动的 第一个是有哪一些这个就自动配置,这些是包含了所有的这个自动配置的,都答应出来了。比如说我们之前就是要配置这个转发收入内的,现在都不需要配置的, 直接就是视频部的自动的帮你配了。然后还有这个蓝天器过滤器,然后这个收入内的都可以打印出来了,就可以看到更多的这个信息。好,谢谢。

好,讲完我们这个日子级别之后,那我们就来看一下这一二三四五六这对呢五个方法是怎么玩的,那这个也就是我们代码中怎么写,怎么弄我们入字的一个输出。 好,先看第一种方式,就是在内中定义出一个静态的一个 locking 方法。静态的 locking 方法怎么办呢?好, ctrl c ctrlv 一下,找到他 ctrl c ctrlv, 随便照一个方法里面去折腾,比如说刚刚我们做输出的一个逻辑,那很明显是在这里面去输出的吧,那我们做啥呢?就在这里面干活就可以了。来看这, 首先在这里面内中把刚刚拷贝的方法贴进来,然后记得就是你当前所在的内啊,直接码对象就可以了。然后把这 这个呢倒一个包看清楚,倒了包是哪个?有 my bet is 的一个 log, 还有一个下面这个呢,就是一个我们说万金油的这个接口类型的一个规范,就是日制规范,就他,所以呢我们倒了包呢,全部使用他的正规范的这个包,这个也倒个包。 好,就他打个包好啦,要做啥动作呢?那就是打印在这个位置,打印你想要的信心,比如说第一个我们对应的叫 chance 啊,这是 这是券使级别。好,然后往下走,往下走,往下走,来了,券使级别之外还有个哪个级别? 从小到大一个叫第八个级别,那这边呢,也适当改善,变成了一个第八个要再往下呢,还有一个叫 info, 那你这边要改一下,换成颜色 info 哦, info 完了,还有一个 warning 这个级别,这叫警告级别,还有一个叫 era, 就异常级别。 好,就他来,当你这些都做好了之后呢,我们就关掉,然后再启动一下,你就来看一下,默认的情况下,我们这里面所设 集到了一二三四五这五个级别,对应乃日字,能不能全部打印出来呢?好,就他刷新一下,要过来看一下谁打印了,谁没打印好,往上走,往上走,把这些呢,先关掉,看这 级别。第一个呢,就要 in four, 它打印出来了, warning 这个也打印出来了, arrow 他也打印出来了。 a, 谁没打印出来? chens 跟什么东西?跟我们这个 chens 跟第八个,这模式他打印不出来,看得到吗?那说明了什么?说明我们当前的水位,你觉得应该是哪个? 后面这个 info, era, warning 这些都出来了,他她她瘦出来,但是这两个没出来,那很明显我们的水位多高,是不是就一个 info 级别吧?对于呢,这个大坝必须挡到 info 级别。这 三个出来了,后面两个是没有出来了,是不是这样一个逻辑?这个呢,就是我们说日字打印的一个操作,这是第一种方案,那有没有第二种方案呢?有第二种方案呢?就借助的我们提供的兰博可这个小辣椒的一个工具,在他头顶上贴上这个柱件, 好看一下,头顶上贴上我们这个主角,在这往里面贴好,记一下 lf, 然后呢? for drag, 看它就它一贴了之后,哎,一个小写了, 导入我们相对应的包一贴了之后呢?哎,你看一下是不是一个小包错在这个地方,哎,这什么原因?他包错了?那是因为这个地方这个位置好,你把它注死掉,哎,来 看什么原因?对了,当你贴上这个柱姐之后呢?他会在你当前这些泪上去注入一行代码,这行代码就是跟这个一毛一样,刚好他对应的那个类的名字,他的变量的名字也叫 looking logo, 这个值吧。所以呢,打印出来的结果是一样的,一样的效果啊,所以呢,两个呢,其实本质都是同一个东东,看过就好,看过就好啊,好,这些打印大家刻下,你自己去看一下就行了。 那最后呢,我们说一下修改怎么去改?刚刚也说了,他只有那个 info, warning 跟 arrow 这三个出来,那如果我现在想所有都出来呢?那怎么办?那就在这个地方做一些变动, 这个成语叫默认,默认是对应的 info 级别,那我现在我想改成第八 八个级别,那怎么办?那就在你的配置文件里面把这坨代码加进去,就是 looking level 点上录,录的就是你的根,也就是你的本最顶的那个日子,然后你在启动的时候,这个时候你就观察了,你用上第八个了之后,你发现了没有 打印出来的信息相对刚刚我们打印来说是多了很多网,为啥?因为系统级别的日字他也有涉及到一些版本,也就是我们说的一个 info 操作,你配了 info 之后,他挡了很多信息,但是你配了第八个的时候,那很多信息就出来了, 好,来看,当我们这么配了之后,你再来访问的时候,你来观察一下此时他打印的哪些信息出来,给你从上面往下看,是不是有一堆好,其中这 个位置看着是不是多了第八个级别了吧?那这个就是日制的一个配置版本的一个配置配的多高?那我输出的信心那就是可能根据你的高度来决定,有一些有,有一些没有,就这逻辑哈, 那这那我们后续项目开发里面究竟用哪个呢?就真实的项目开发究竟用上面的,里面的这一二三四五究竟用哪个好?这里面说一下,一般来说我们项目初期也就项目部署上去的时候,刚开始的一个新项目,我们都建议大家配哪个? 这个 chance 这个级别,这个呢级别的目的很简单,就是让你把所有系统的日式信息全部打印出来,然后你先来观察这个日字,看一下你的系统跑路是 否稳定,是否稳定,尽可能把所有信息全部弄出来。然后呢再往后呢,假设对应了一个项目都 ok 了,那这时候慢慢调一下,变成了第八个模式之后,就第八个这么一个挡板,之后再来观察一下, 哎,稳不稳定?当系统真正稳稳定下来了之后,这个时候呢,你就配这个音符就可以了, 配一个 info 就可以了,其他的呢就不用管了,就配这个 info。 就是拿好,那最后呢,又涉及到什么情况下我们去调用这些方法呢? 什么情况下吊用这些方法?那这里面又来说一下,一般来说在公司里面你怎么去吊用这些方法?那你就看一下以前那些同事他们是怎么写代码的,那你就照着他写就可以了。他们吊用 info, 在什么场景下用 info, 那你就看一下他们什么场景下用 info, 那一些什么场景下用 arrow, 什么场景下用 check, 什么场场景下用第八个,这个呢你就照着他们去看就可以了,照着他们的方式来去写。 那我这里面说一下我们常规的一个写法是啥?一般一些核心的一个方法,核心的方法开始之前 弄一个券,弄一个硬货,结束之后呢也弄一个硬货,然后核心核心的对应的操作点上 加上这个孕妇。比如说我们做一个转账逻辑,那转账操作之前你就说是给谁转账了多少钱,给叉叉叉用户转账多到多少钱,然后呢?动完了之后呢?给叉叉叉用户转账了多少钱?结束一个开始,一个结束, 然后呢转账的过程中也记录一下做些啥,做些啥,做一下记录动作。这个呢就是一个 info 级别的一个使用,还有另外一个 l 级别的使用是啥东西? 就是我们一场信息爆错了之后,那这个时候 allen 就必须得要记忆,记忆里抛了异常,或者说什么原因可能导致异常出来,那就在你异常的地方 处理这个 l 信息,把 l 这个日字打印出来。这个呢就是品尝开发的时候我们做的一些相关段选择, 这个大家可以去理解一下,理解一下,但是最佳的还是看啥,你公司里面那些同事怎么做,你就跟着他做就可以了, 就可以了哈。好,这个呢是我们说的日制操作,先停一下,等一下我们之后再说,是温布里面的一些日制框架的一些额外处理逻辑,这个先停一下。

hello, 今天给大家分享我们用 spring boot 使用 aop 进行统一的日志管理,比如这边有一个方法 test, 如果我调用这个方法,我希望在之前能够打印出它的一个方法名和入裁,我在这呢调用一下这个接口, 那这边呢有两条第八个日志啊,我们看一下,然后呢这边分别就打印了它进入这个方法以及出去这个方法,并且传入的一个参数呢是十二。然后呢还有调用的一个方法呢是 test, 那这边主要其实就是这样的一个切面类啊,然后呢这边定了一些切入点啊,包括就是 spring 框架的切入点,然后呢还有我们项目中的一个切入点,那这边有一个环绕通知 around, 这个方法作用呢就是在方法进入和推出 时候记录我们日志的一个通知,这个方法呢就是记录方法抛出异常的一个通知,而且我们还会根据我们的一个环境来进行判断,如果是开发环境和测试环境,我们进行这样打印,如果是生产环境呢,我们这样打印, 然后这边呢有一个 look bug 的一个日志文件啊,我们在这边呢主要是定义了不同环境的它的一个日志打印的规则也比较简单。那如果说大家想要这样的一个 demo 以及之前的 demo 的话呢,可以到这来 这,然后给他去发一个消息,像这样就可以拿到我们的 demo。 好,今天的一个分享呢,就到这。

在 swind boss 中记录操作日志需求,背景是就要将用户对系统的操作行为记录下来。直线, 为了将业务减五和以及能获取到请求参数信息,采用 aop 加自营业注解加 spl 表达式加多线程实现说明 aop 采用前置通知,业务减五,自营意注解 配合 aop 作为切点,用 spl 表达式 spring 内置的 el 表达式能够获取到参数的值。多线程 can play table future, 提高记录效率。先第一步,我们先新建一个增益注减,这个增益注减中有一个属性,也就是日志内容,这个 知识内容包含 spl 表达式。第二步,我们需要写一个 aop, 在这个 aop 中我们采用的是笔放前置通知,它的缺点就是我们的注解。然后在这个方法中有两个参数,第一个是装 point, 第二个就是字音页注解, 这两个需要对齐。然后第一步,我们需要先拿到参数,拿到参数之后我们还需要拿到参数的名称。接下来是 spl 解析,上下文把韩德勒麦色的的型餐都添加到摄像文中, 并且使用参数名声作为 k。 然后下一步是进行 spl 表达式的解析转换。最后一步是采用多线程 complate 包非优舍的软 acc 方法来进行一步纯属日志,这里指 打印了一行 log 来简单模拟一下。在实际操作中,这里需要一步记录到数据库中,在这个切面类的最上方有两个属性,那这两个属性一个是需要被 spl 解析的模板前缀和后缀,这里可以自应易得, 那我们这里自愿意就是一个花括号的左边和右边,通过这个模板就可以识别出来 spl 表达式来进行内容的替换,那第二个是 spl 解析器, 那这里也是需要先构建出来,接下来打开 ctrl, 在这个 ctrl 中我们有一个方法,然后现在我们只需要添加字音一注解,在这个字音一注解中,这的内容我们就可以通过 spl 表达式来进行拼接,那前缀和 后者都是我们自营一的。在这里我们需要拿到用户的 id, 也就是优则点,优则 id 就是这个对象中的优则 id 属性以及用户的名称就是优则点。内幕以及我们想从 record 对象中获取一些信息,也是可以通过 spl 表达式的语法来写的, 那这里我们来请求一下。这里又传入两个参数,第一个参数是 uzid, 第二个参数是内幕,我们来请求一下。 在控制台中我们可以看到查询参数,用户 id, 优则内幕 以及 ant 都是可以获取到的,从这里我们就可以实现了记录操作日志,通过 z e 的形式与业务结构合,而且只要符合 spl 语法的都可以进行操作,今天就讲到这,谢谢大家。

接着上一个视频,上个视频呢,我们完成了这个综合案例,也就把原先传统的 ssm 项目改造成一个 spec 版本的一个项目。那现在呢,我们就来看最后一个支点,也就是这个系统日字。那先说一下这个重不重要,其实非常重要啊,那我们就来看一下为什么重要呢? 来看我们在以前在水抓瓦的时候呢,最初最初我们进行对应的代码调色,我们是不是都采用一个叫 system 点奥的点赞 plane 这么一个方法来去调用我们这个日字答应在控制台里面把日字答应出来了吧?那这个呢?是最原始的一个操作逻辑,操作逻辑哈,但是这种操作呢,不是很好,为什么 我们在项目启动的时候呢?完全可以在这里面去看,也就是说在这个位置里面完全可以打印出我们想要的信, 这个完全可以打印出我们想要的启动的时候的一些相关信息,但问题卡在哪里? 问题才开那里。那后续我们项目开发结束了之后,然后会对这个项目做一些部署逻辑,也就是说后续我们会把这个项目部署到一个服务器里面去,也就是 linus 这个服务器,或者你可以理解为就是一个 上线环境,一个性能非常好的一个电脑里面去。那这时候大家想一下,那我们对应上部署上去了之后,那打印的数据是肯定是在这个电脑上吗?那我们作为一个开发者,那想去看一下你这个电脑信息,那就做不到了哦, 因为我们一般是没有权限,作为一个开发员的话是没有权限去折腾那个生产环境的一些福气的,去看他的一些 相关内容了。所以这个时候大家想一下,如果还是按照我们以前传统的方式,加一个 success ten 点奥点 plane, 把对应的日志相关的逻辑打印在我们这个控制台里面去,那你就会发现根本没法干活了。 所以这个时候呢,就出现一个新的逻辑,也就是我们说日字框架这边的动作,这个日字框架比我们这这个单纯的这种 打印了来说,他方便了很多很多。可以做到啥东西呢?除了在控制台上输入字输出我们的日字之外,你还可以把这些日字输出到一个文件,或者输出到一个数据库里面去,那一旦我们把那那日字文件放到 日字的信息放到文件上,那我们就可以直接拷贝这个日字文件过来,要进行相对应的问题分析。 这个就是我们日式框架相对于前重传统的操作来说,他的一个好处点就在这第二个呢,除了这种好处之外呢,同时他还有这个地方,就是我们做的日制, 这是框架,他比我们以前传统的输入的方式来说他的灵,他更加灵活了,除了刚刚我们说控制台的操作之外,文件、数据库这些都可以,甚至你可以定制他输出的格式,甚至我们说了输出了级别,那具体什么叫输出级别?不急,等一下我们再讲解这套逻辑。 现在先不急哈,先不急先大概知道那日子那么重要,那我们私奔部他要怎么对日制做一些处理呢?好,那这时候呢,我们就来说一下私奔部里面的日制是怎么玩的?来看私奔部默认呢是启动了一个我们这个说错日子, 他对应上启动我们的生命部的时候,大家可以看一下。好,我启动这个字,一点击启动,你来观察一下他打印出来的日字信息长什么样子。好,大家可以看一下这坨,这坨看到吗? 这头呢都是我们生命部他默认的一个日制输出格式,就在控制台里面,然后这里面打出来的信息是做了一些调整的,或者一些定制的,那这些分别对于那啥呢?分别对应着我们这里面所说的时间格式, 日字级别,还有现场 id, 还有现场的名称,还有我们对应的日字的泪,还有日字的一些相关的说明,也就是下面我们所看到了这几个字日期要级别,还有 id, 还有现场名称,还有一些相关的类名,还有一些相关信息名, 好等等等等,这个就是私奔部他默认的一个日制框架,打印出来一个信息。好,除了上面这个呢,还有再看一下私奔部的项目呢,又分为我们所日制性系统日制,还有一个叫应用日制,那这什么意思呢?好,先看这, 当我们启动了之后打印出来这么多信息,这些是不是是分布他自己项目启动是分布自己的框架启动所打印的时候相关信息,这种信息我们称之为叫系统日子,那他另外一个叫应用日子来说,就是后续我们在执行说口语句的时候,比如说启动了之后,我去执行下,他 来看 logo 号,给他一个直冒号,八八八八,好,一会上。好,我一打印了之后呢,你再看下面这个地方,除了 刚刚我们看到了启动的时候这种系统日制之外,下面是不还有一些收口语句,看得到吗?那这个很明显是跟我们项目操作有关,就是跟我们的那些查询业务查询有关的逻辑,这个就是我们所谓的 叫应用日子,就这么一个逻辑识别,不,他分两种,系统自己的,还有我们项目自己的,而另外一个呢叫系统级别, 系统级别哎,越高那输出的内容越少啊,如果说是设置的级别是一个 info 的话,那对应上 do, 还有我们这个 chess 级别是没法显示的。好,这个是啥东西呢? 先不急,我们先跳过,等一下我们再用一个单独的章节来去讲解一下这个日字级别究竟是什么。现在先别急,先大概跳过去,先知道有什么回事再说。那最后呢,我们说一下那四分步他 究竟用的是什么日子框架呢?好,这里面有这么几个眼镜,我们先说一下这个,对呢,系统日字叫抓瓦的日字打印呢,其实它有一定的发展过程呢,最初最初出来的时候呢,叫做这个 come on looking, come on 呢,这个 looking 这个日子阿帕奇的一个字,然后再往后呢是一个叫 drivework looking, 再往下呢就一个 lockfoot j, 还有个叫 loft dread 哦,还有一个叫啥 lock back, 还有叫 s 要 fall 我们呢 footj 这个字诶,叫啥意思呢?来说一下哈。前面这几个呢,其实都是一个框架 前面几个都是一个框架,都是各种日字,不同的厂家,不同的纸珠,他对应上都是有自己的设计的框架,导致我们在抓瓦里面,抓瓦领域中日字框架非常繁杂,然后各种操作都 千奇百怪的。那这个时候呢,前面这四个,一二三四五这五个吧,都是属于我们的日子框架, 都是用抓瓦去操作的。但是呢,这种时候你就会发现项目里面不同的框架,它采用了不同的日字系统,导致了我们的整个项目会千奇百怪的。哎,这个时候呢,有个大神出来了, 他就开发出来一个叫这个东东,这个是他是不是个项目呢?其实算不算一个日制框架呢?说是也不是,他更多的像是一个接口,就是一个 api, 也就是我们所说的规范,他做了些啥逻辑呢?好看下面这个地方,你可以看一下 我们上面所说的这些日子框架,他是不是都有个干干干干干干,这些框架,看得到吗?看到吗?哎,这些是啥东西?好?他就是类似 自配庆,跟什么人都可以对接,跟什么人都可以对接,所以我们后续在项目开发的时候,只需要导入这个对应的一个接口了之后就可以干嘛呢?从容呢?去匹配这些相关的日式框架, 看到没有?也就是说这个大佬出来之后呢,做了一个规范,整个抓挖体系里面的一个日式系统做了个规范, 规范,那大家都遵守这个规范了之后,那我后续,哎,在对接这些日子框架的时候,只需要把它给扯进来 就可以了,就类似一种望精油的结束,这个呢就对接我们整个项目,抓我的项目,然后由他再去对接相对应的日子系统,就这么个逻辑,而四分部里面他默认也就挤成了这个 logo back 的话,所以呢,我们不需要再做任何操作,你就可以 打印相关的日字纸了。那具体怎么打印,怎么说出?不急,我们等一下下一个视频我们再说这个呢,先了解了解,大概知道是分布的一些日字介绍就可以了。

你们有没有过这种情况,本地代码运行没有问题,但是到了开发或者测试环境会出现各种各样的问题, 这个时候就需要远程调试一下代码,可以通过添加日志进行调试,但是需要重新部署环境还是有些麻烦的。这里咱们可以通过 idea 的远程 debug 解决这个问题。这是一个私人部的项目, 只有一个接口,非常简单,只是打印了几句话。这里呢,咱们以这个项目为例,首先选择 editor configerations, 点击加号,咱们找到 remote g v m d bug, 然后这里呢随便起个名称,这个名称随便起,然后这个 host 是咱们的服务器的 ip, 比如说这里的服务器 ip 是这个,然后咱们将它复制过来,端口号是启动命令时的端口号,比如咱们就要八零九九,这是自动生成 的启动脚本 g t k 版本不同,启动命令也是有些差别的,咱们这里是 g t k 八,所以说用这个命令就可以了。现在需要把这个项目打包部署到服务器,这里呢,我已经把炸包放到服务器当中了。接下来咱们通过这个命令启动一下 项目,启动后可以看到八零九九端口已经被监听了,咱们通过浏览器访问一下,可以看到项目正常访问。在本地代码添加个断点,咱们 debug 一下,可以看到他已经连接到八零九九端口,也就是咱们的服务器了。 咱们再刷新一下页面,可以看到断点已经生效了,这种调试呢和本地调试是一样的。最后小伙伴们还有什么更好的办法吗?评论区讨论一下。

看一个需求,在微服务中通过日志查看接口的入餐、出餐调用地址,调用方法 以及接口响应时间,那么这个需求的目的是什么?是通过以上参数更好的了解接口的运行情况以及错误排查, 那它的实现方式是什么?是 aop 切面编程,那么咱们来看一眼代码视力。首先在这里定义了个 srid logo 接口响应的开始时间,定义了一个切入点,这个切入点就是咱们的 ctrl 层 在读必放方法中打印请求地址, url, http, messer 的 ip 以及方法,还有咱们的参数。最后在 retin 里面打印它的返回参数以及它的执行时间, 通过 postman 调一下看看效果。来控制台看一下日志, 这里边已经打印了咱们的请求地址就是本地,它的 i h t t p max 就是盖的方法, ip 地址就是本地的 ip 地址, 所调用的方法就是咱们刚才用的这个 save 方法,因为这个方法里没有参数,所以说参数为空,还有返回值以及接口的选用时间。

我们来看一下这道面的题, springboard 默认日制实现框架是什么?怎么进行切换?因为这些东西啊,我在我的 springboard 基础系列课程当中呢,都已经讲得非常透了啊, 如果你还不懂的话,一定要再去看一下基础课程。好吧,那么 springboard 默认的日制实现框架呢?就是 look back, 关键是怎么切换成别的日志框架呢?那这里的话,你就要知道这个 s, f, g 的他的一个日志调节器跟日志适配器这两个东西了, 这两个东西不知道的话,还是去看一下我的基础系列课程,好吧,所以你回答这道面的题呢,直接说是通过的默认日制实现框架就是 logback, 怎么切换?添加 s l f g 对应的调节器跟 适配器就可以了。那如果面试官让你举个例子怎么办呢?我们给你具体的看一下,好吧,给你具体的看一下, 那么我们现在的这个默认的日志实现框架,如果你想具体的看,我们可以打开这个破门键,然后 diagram 打开它的这个依赖。然后呢,我们来搜一下 loki, 我们可以看到啊,这个呢就是日志的一个场景启动器,并且我们发现啊,你只需要添加了 spring 布的最基础的这个场景启动器,那么这个日志的场景启动器呢,它会自动给你依赖上, 所以证明什么?证明我们的这个日志的场景启动器是 spring 部的必须的必加的一个东西, 好吧,然后我们可以看一下啊,你注意看这几个, 好吧,注意看这几个 log, 这个 s l 或 g 的一个日制门面,还有这个,这两个,这个,这几个,好吧,注意看这几个。首先啊,我们刚刚说了, 我们的 server mode, 它使用的日志门面呢,是 s l four g 日志门面,它是没有具体的日志实现的,你必须添加具体的那个调节器,它才会指向具体的那个日志实现,当然调节器 只能最终指向一个。你看我们这里的啊,这个就是 logbag gun class 就是 s l o g 的这个日志的桥 接器,所以说它会指向 log back 的这个日指实线。然后啊,如果你当前的依赖当中添加了 g u l, 然后又添加了 log for g, 那么现在我们肯定希望统一成 logback, 对吧?统一都用 logbag, 那么 springboard 呢,它非常贴心地给我们加了 g u l 转换到 s l f g 的这个适配器,也就是说,如果你添加了 g u l 的这个日志气实现,它会给你转到 s l f g 上面。 log back 也是一样,他给你添加了,不是 log forg 也是一样。说错了, log forg 也是一样,他给你添加 log forg 转换到 sl forg 的一个 这个识别器,好吧,也就说 logo forg 和 g u l 都会转到 s l for g 上面去。然后最终呢, s l for g 呢,它会给你添加这个 log back 的调节器,最终指向的就是 log back, 所以他默认的日志实现框架呢,就是 logback, ok, 所以说,如果现在你想切换成别的日志实现框架,你是不是只需要把这个给他排除掉, 对不对?把这个 log back 干 class 给它排除掉就行了。排除掉之后呢,如果你想添加,比如说你想添加一个 log 或即 to 的一个日志实现,你想统一都用这个日志框架实现,你只需要呢 去添加一个 log forg two 的一个调节器,好吧,添加一个 log forg two 的调节器,那么最终指向的呢,就是 log forg two, okay, 能明白?那么比如说啊,你现在我再举个例子,就比如说你现在有个你的你的这个 supreme 的应用当中有个 look forge two, 你也想给他 最终指向 log back, 那么你就需要呢,也加一个 log forge two, 适配到 s l f g 的这样的一个适配器,知道吧?所以说啊,这里倒来倒去,说白了就是 s l f g 的这个适配器跟调节器搞来搞去,如果你不懂的话,你肯定会听晕,但是如果你懂的话 啊,就是你只需要按照这个套路去给他替换这个调节器跟适配器,他最终呢,就能达到一个最终你想要统一的那个日框架,好吧,但是啊,我再提一点,如果你想切换的是 logo forge two 的话, 你只需要呢,首先把这个,把这个 locking 好吧,把这个 locking 的场景启动器呢给它排除掉, 然后呢,加上 logophone 进库的一个环境启动器,这是 spring boo 的,它官方帮我们已经提供好了, 因为现在市面上说白了就是 lock verge two 跟 lockback 它们两个性能最好,对不对?所以说 september 的它默认使用的是 lockback, 然后 他也同时添加了 log forg two 的一个支持,方便我们进行切换,你就不需要像我刚刚所说了,添加调节器啊,添加适配器。明白, 然后呢,如果你要切换成 logo forg 的话,你就需要呢,把这个我刚刚说的这个 logbag class 给它排除掉,然后呢,添加一个 log forg 到 log forg, 不是 s l forg 到 log forg 的一个调节器,那么最终呢,指向的就是 logo forg, ok, 所以说我们回到这道面日题的话,怎么录的默认实线框架就是 log back, 怎么进行切换呢?如果你要切换的日式框架是 log forg two, 那么只需要呢,把已有的这个 login 产品启动器给它排除掉,然后添加 log forg two 的一个产品启动器就可以了。因为死人部的它除了支持 log log back 以外,也同时支持 log forg two, 因为现在市面上这两个日制框架呢,是性能最好的。 但是如果你要切换成这个两个日志框架以外的,你就必须添加对应的那个日志的一个调节器,好吧, ok, 那么这是这道面试题,感谢观看资料笔记,免费领取资料图案,扫码添加就可拿到想要的资料。

啊,我们说完了日制方法一些使用之后,那我们就来看一下叫 local bag 这个配置文件的一个作用。这个是啥东西呢?那来说一下 supreme, 它对应了里面集成的一个日式框架,就是一个叫 local bag 这么个框架, 这个框架呢,默认呢?就启动了,也就默认就使用了哈,那使用了之后,假设我现在呢,哎,觉得刚刚这个启动的时候,他配的这东西不好看,他打印出来日制格式不是很好看, 不符合我个人的审美,那这时候我想改一下该怎么办?这问题我想去修改修改,折腾折腾一下怎么办?我这个呢,先调回到最初的那种形式啊,我想要对这个日志做一些美化,逻辑改成我喜欢的那种, 那怎么办呢?也就是涉及到日制的一个定制的问题了,那这个时候就涉及到我们这个配置文件怎么写,怎么改,怎么弄的这种情况。那来看一下这个 logbei 日字呢,它会自动去加载一个叫做卡斯帕,里面加载一个叫 logbe 点查妙这么一个配置文件, 这个配置文件呢,就是你来定制你的日制格式的这么一个配置文件默认已经给你了,那你如果你想要不想要他的,那我想定制我自己的,那这个时候你就可以适当的去改一下。怎么改呢?那来看 看上面哈。 spring 部的使用的时候,他除了刚刚我们说这个 logback 点常妙文件的一个配置之外,还提用了第二种情况,就是 logobat 杠上 spring 点常妙文件,这两个呢,其实都可以,那你喜欢用哪个 你就用哪个,有时候我们推荐的用它,那你要做的是的 ctrl c, ctrlv, 在你的卡斯帕里面去。好,来看,就在这个位置,这个呢就是你的卡斯帕所在的位置,右键创建出一个新的文件,这个文件名称呢,就叫做 local best spring logobod 杠上 spring 点唱妙文件,然后把刚刚我们给你看到了这个样板文件 control sevencometrolv 一份贴进去, 好,往里面这么一贴,一贴完了之后,其他的都不要动,都不要动。好,你来看一下会不会取效果的启动,重新启动一下我们的项目,以,这个时候你再来观察。 哎,打印出来的一个信息跟我们之前的信息一不一样了,一不一样了,不一样。为啥变丑? 丑了对不对?那这个呢,没办法,你定制的没有是变不的好看,所以呢就变丑了吗?但是这个至少你能告诉你说这个操作是不是生效了。哦,那生效了之后呢?那你后续你想要定制定制成什么样, 你自己来决定了。那这些呢,可以大概看一下分别代表什么意思,从上面往下看。好,这里面也做了一些很重要的一个配置,一些信息,重要的属性的配置都明确了,标记在这里啊,你自己去看一下,看一下啊,第一个呢叫 configures, 好,要不要扫描啊?就是要不要开启我们日制的一个热部署啊?默认是处,默认是处这个字表示开启,然后呢,热部署的一些频率大概是六十三,看啥意思好?热部署的意思就是他会每隔六十秒, 也就是每隔一分钟,他会去刷一下这个文件,只要你这个文件发生变动了之后,他马上进行改动,运行改的话这个就是他一个热部署的一个操作设置,我们所说出的内部的日子啊,这个呢看一下就可以了。好,下面这个位置 好,他还有他,还有他,总共呢?这三个分别代表什么意思?第一个就是 apen 的对象,日字输出的对象配置不同类的时候他有不同的功能,这个呢给大家刻下,可以去喵喵看一下我们当前这个 cancer apend 啥意思? 就是打印到日字里面去,就对应的控制台里面去,那后续你想把它打印到我们所文件中,那你就用上这个字叫 fy or pan 的,看到吗?那后续再往后的话,如果你想打印到我们的数据库里面,这个呢就得改一下叫 db, 真的这个逻辑,这个点大家留意,那再往下呢,这个弄好了之后呢,看下面这个地方,就是你打印出来信息的格式长什么样,那这里面就是你这个叫潘特这个格式默认采用的方式, 之前我们打印出这边不那种默认方式,就是在这个地方做定制的,那现在我们说这边不打印不好看,那我们用我们自己的打一个更丑的,那你来看怎么玩呢? 打印出来你对比一看,首先前面这块呢是一个时间,然后中间这个呢是你的级别,再往下呢是你的现成名称,再往下呢就是你的日制的一些相关信息,大概他要求三十五个制服,那你就只能说些人,这个就是三十五个制服, 再往后用一个尖块表示,对应下后面的相关的信息。还有你的那些会 车什么节了,这个要 m 就一个回车回来,那就整个逻辑就这么回事。这个呢就是 steven 不,他的一个日制的一个定制, 除了这些之外呢,还有很多很多一些逻辑,那你就可以去看一下去,如果你对这块有兴趣,你想改造成漂亮的格式的,那你可以深入去研究四分部的一些配置进行。 那我们在公司里面这些要不要你懂,基本上就固定下来,甚至一般我们都默认上 默认什么人不他自己输出那种格式,我们只配置啥东西,就是这样在这个地方就是后续把那个输出的文件指定到日制,指定到某个具体的文件上,让他打印出来就可以了,这个就是这套逻辑,整个动作就能这么玩, 这个呢刻下大家可以自己去玩。最后说一下,就是这个地方也要说一些配置,就是六个表示通用的六个日子,还有一些其他的 level 级别,就是我们输出的一个级别,默认叫应付,后续你根据你想要的一个情况来说出不同的一个日子级别 就买了。好,这一整块呢就是 spec 里面所涉及到的所有的一个日制相关的内容,到这就结束了。