Spring 5 Recipes: A Problem-Solution Approach 目前无人评价
读书笔记 2-13. Use Aspect-Oriented Programming with Annotations
小土豆

如果我们运行项目 ch02/recipe_2_13_i,会发现系统标准 I/O 里出现如下的一串警告信息:

22:04:23,650 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead. 22:04:23,651 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder. 22:04:23,651 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details

由这段警告信息可知,Logback 已经更新了它的 appender 接口,在新版的 Logback 里,appender 不再将 layout 作为子元素,转而使用 encoder 对象作为子元素。按图索骥,访问 URL https://logback.qos.ch/codes.html#layoutInsteadOfEncoder 对应的 Web 页面可以看到,Logback 社区给出了用户由旧版 appender 迁移到新版 appender 所需改动的用例。我们观察用例发现,只要将项目文件 logback.xml 中的 appender 元素里的 layout 元素替换为 encoder 元素,并修改相应的 class 属性值为 PatternLayoutEncoder 即完成迁移到新 ConsoleAppender 接口的工作。因此,logback.xml 文件里的 appender 元素修改后变成了这样子:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d [%15.15t] %-5p %30.30c - %m%n</Pattern> </encoder> </appender>

修改后,重新运行项目,会发现系统标准 I/O 里之前出现的警告信息已经消失,项目里程序的行为重归预期。

0
《Spring 5 Recipes: A Problem-Solution Approach》的全部笔记 10篇
豆瓣
免费下载 iOS / Android 版客户端