slf4j log 稳定性监控之灰度监控

如何利用error进行稳定性监控,灰度发布监控?
1. 完备性.
2. 侵入性少.
3. 可区分度.

1. 通过filter来过滤.
2. 通过log的配置和encoder机制来实现
3. 加上关键的name(%c 小写的c, 大写的%C, 不建议, 耗时高, %method也不建议, 耗时高) +
(http://logback.qos.ch/manual/layouts.html 在logback的layout上)

1. 增加 encoder 替换原来的 patternEnCoder. 1.1 增加rootException class和原因. 1.2 原有的 loggerName 1.3 callerClass;

2. 

bad案例


<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
   <layout class="ch.qos.logback.classic.PatternLayout">

     <pattern>%date [caller=%replace(%caller{1}){"\n",""}] [rootEx=%replace(%rEx{0}){"\n",""}]] [%level] [%c{0}.%method] [${lippi_meetingroom_current_environment}] m=%X{EAGLEEYE_RPC_METHOD} %msg t= %X{EAGLEEYE_TRACE_ID} %n          </pattern>
   </layout>
</appender>

protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Test public void testError(){ logger.error("123 {}", 3, new RuntimeException()); LoggerUtils.error(logger, this.getClass(), "test", "", new RuntimeException()); }

2020-05-02 19:36:47,982 [caller=Caller+0     at com.dingtalk.meetingroom.mocktest.manager.meeting.BookingManagerMockTest.testError(BookingManagerMockTest.java:60)]  [rootEx=java.lang.RuntimeException: null]]  [ERROR]  [BookingManagerMockTest.testError] [lippi_meetingroom_current_environment_IS_UNDEFINED] m=  123 3 t=  
java.lang.RuntimeException: null

2020-05-02 19:36:48,015 [caller=Caller+0     at com.dingtalk.common.log.LoggerUtils.error(LoggerUtils.java:48)] } [rootEx=java.lang.RuntimeException: null]]  [ERROR]  [BookingManagerMockTest.error] [lippi_meetingroom_current_environment_IS_UNDEFINED] m=  [DT_Monitor_V1] result=false, category=BookingManagerMockTest_test, reason=, traceId=, description=,  t=  
java.lang.RuntimeException: null

猜你喜欢

转载自blog.csdn.net/fei33423/article/details/105894403