Skip to main content

Q & A

Q:为什么我的请求从controller进来,日志标签却没有打印?

A:你的项目里如果自己定义了web拦截器,去确认下是否继承了WebMvcConfigurationSupport这个接口,TLog的拦截器是实现了WebMvcConfigurer接口,在spring mvc中WebMvcConfigurationSupportWebMvcConfigurer是会有冲突的。

解决方案为:把继承WebMvcConfigurationSupport换成实现WebMvcConfigurer接口,多个WebMvcConfigurer是不会产生冲突的

Q:我使用的是javaagent方式/字节码方式接入,为什么不起效果?

A:javaagent方式和字节码方式在TLog中本质都是一样的,只是javaagent不用依赖而已,都是在类加载之前,通过javassit去更改字节码。但是由于不同的公司系统差异性挺大,如果有存在在TLog之前就提前加载了相关日志框架的类,就会导致标记失效

解决方案为:换成日志框架适配器方式去接入,这是目前最稳定的方式,且支持的特性也最多

Q:我用log4j2,为什么日志开头会出现大量的warning信息,这正常吗?

A:这个是正常的,因为log4j2的加载机制是插件形式,TLog需要覆盖log4j2的默认插件,所以log4j2在启动时会有warning告知mdc的占位符被替换了