Skip to content
gqlxj1987's Blog
Go back

Arthas Log Bug追查

Edit page

原文链接

利用arthas直接在线上定位问题的过程,主要使用 scgetstatic命令。

例如:

$ sc io.netty.channel.nio.NioEventLoop
class-info        io.netty.channel.nio.NioEventLoop
 code-source       file:/opt/app/plugins/tair-plugin/lib/netty-all-4.0.35.Final.jar!/
 name              io.netty.channel.nio.NioEventLoop
 isInterface       false
 isAnnotation      false
 isEnum            false
 isAnonymousClass  false
 isArray           false
 isLocalClass      false
 isMemberClass     false
 isPrimitive       false
 isSynthetic       false
 simple-name       NioEventLoop
 modifier          final,public
 annotation
 interfaces
 
super-class     +-io.netty.channel.SingleThreadEventLoop
                     +-io.netty.util.concurrent.SingleThreadEventExecutor
                       +-io.netty.util.concurrent.AbstractScheduledEventExecutor
                         +-io.netty.util.concurrent.AbstractEventExecutor
                           +-java.util.concurrent.AbstractExecutorService
                             +-java.lang.Object
 
class-loader      +-tair-plugin's ModuleClassLoader
 classLoaderHash   73ad2d6

通过查看源码,了解相关的logger的实现

$ getstatic -c 73ad2d6 io.netty.channel.nio.NioEventLoop logger 'getClass().getName()'
field: logger
@String[io.netty.util.internal.logging.Slf4JLogger]

tair插件里的logback没有设置ROOT logger,所以它的默认level是DEBUG,并且默认的appender会输出到stdout里。

一些经验


Edit page
Share this post on:

Previous Post
jenkins analysis
Next Post
孤独的美食家