import{_ as e,o as l,c,a,b as t,e as s,d as o,r as p}from"./app.6c27e557.js";const i={},r=a("h1",{id:"logger",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#logger","aria-hidden":"true"},"#"),s(" logger")],-1),d={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-logger",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"logger",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),g=o(`
\u63D0\u793A
\u67E5\u770B logger \u4FE1\u606F\uFF0C\u66F4\u65B0 logger level
\u4EE5\u4E0B\u9762\u7684logback.xml
\u4E3A\u4F8B\uFF1A
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="APPLICATION" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="APPLICATION" />
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n
</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ASYNC" />
</root>
</configuration>
\u4F7F\u7528logger
\u547D\u4EE4\u6253\u5370\u7684\u7ED3\u679C\u662F\uFF1A
[arthas@2062]$ logger
name ROOT
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level INFO
effectiveLevel INFO
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
appenders name CONSOLE
class ch.qos.logback.core.ConsoleAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
target System.out
name APPLICATION
class ch.qos.logback.core.rolling.RollingFileAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
file app.log
name ASYNC
class ch.qos.logback.classic.AsyncAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
appenderRef [APPLICATION]
\u4ECEappenders
\u7684\u4FE1\u606F\u91CC\uFF0C\u53EF\u4EE5\u770B\u5230
CONSOLE
logger \u7684 target \u662FSystem.out
APPLICATION
logger \u662FRollingFileAppender
\uFF0C\u5B83\u7684 file \u662Fapp.log
ASYNC
\u5B83\u7684appenderRef
\u662FAPPLICATION
\uFF0C\u5373\u5F02\u6B65\u8F93\u51FA\u5230\u6587\u4EF6\u91CC[arthas@2062]$ logger -n org.springframework.web
name org.springframework.web
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level null
effectiveLevel INFO
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
\u6CE8\u610F hashcode \u662F\u53D8\u5316\u7684\uFF0C\u9700\u8981\u5148\u67E5\u770B\u5F53\u524D\u7684 ClassLoader \u4FE1\u606F\uFF0C\u63D0\u53D6\u5BF9\u5E94 ClassLoader \u7684 hashcode\u3002
\u5982\u679C\u4F60\u4F7F\u7528-c
\uFF0C\u4F60\u9700\u8981\u624B\u52A8\u8F93\u5165 hashcode\uFF1A-c <hashcode>
[arthas@2062]$ logger -c 2a139a55
name ROOT
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level DEBUG
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
appenders name CONSOLE
class ch.qos.logback.core.ConsoleAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
target System.out
name APPLICATION
class ch.qos.logback.core.rolling.RollingFileAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
file app.log
name ASYNC
class ch.qos.logback.classic.AsyncAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
appenderRef [APPLICATION]
\u5BF9\u4E8E\u53EA\u6709\u552F\u4E00\u5B9E\u4F8B\u7684 ClassLoader \u53EF\u4EE5\u901A\u8FC7--classLoaderClass
\u6307\u5B9A class name\uFF0C\u4F7F\u7528\u8D77\u6765\u66F4\u52A0\u65B9\u4FBF\uFF1A
logger --classLoaderClass sun.misc.Launcher$AppClassLoader
--classLoaderClass
\u7684\u503C\u662F ClassLoader \u7684\u7C7B\u540D\uFF0C\u53EA\u6709\u5339\u914D\u5230\u552F\u4E00\u7684 ClassLoader \u5B9E\u4F8B\u65F6\u624D\u80FD\u5DE5\u4F5C\uFF0C\u76EE\u7684\u662F\u65B9\u4FBF\u8F93\u5165\u901A\u7528\u547D\u4EE4\uFF0C\u800C-c <hashcode>
\u662F\u52A8\u6001\u53D8\u5316\u7684\u3002
[arthas@2062]$ logger --name ROOT --level debug
update logger level success.
\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0Clogger \u547D\u4EE4\u4F1A\u5728 SystemClassloader \u4E0B\u6267\u884C\uFF0C\u5982\u679C\u5E94\u7528\u662F\u4F20\u7EDF\u7684war
\u5E94\u7528\uFF0C\u6216\u8005 spring boot fat jar \u542F\u52A8\u7684\u5E94\u7528\uFF0C\u90A3\u4E48\u9700\u8981\u6307\u5B9A classloader\u3002
\u53EF\u4EE5\u5148\u7528 sc -d yourClassName
\u6765\u67E5\u770B\u5177\u4F53\u7684 classloader hashcode\uFF0C\u7136\u540E\u5728\u66F4\u65B0 level \u65F6\u6307\u5B9A classloader\uFF1A
[arthas@2062]$ logger -c 2a139a55 --name ROOT --level debug
\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0Clogger
\u547D\u4EE4\u53EA\u6253\u5370\u6709 appender \u7684 logger \u7684\u4FE1\u606F\u3002\u5982\u679C\u60F3\u67E5\u770B\u6CA1\u6709appender
\u7684 logger \u7684\u4FE1\u606F\uFF0C\u53EF\u4EE5\u52A0\u4E0A\u53C2\u6570--include-no-appender
\u3002
\u6CE8\u610F\uFF0C\u901A\u5E38\u8F93\u51FA\u7ED3\u679C\u4F1A\u5F88\u957F\u3002
[arthas@2062]$ logger --include-no-appender
name ROOT
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level DEBUG
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
appenders name CONSOLE
class ch.qos.logback.core.ConsoleAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
target System.out
name APPLICATION
class ch.qos.logback.core.rolling.RollingFileAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
file app.log
name ASYNC
class ch.qos.logback.classic.AsyncAppender
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
appenderRef [APPLICATION]
name com
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level null
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
name com.alibaba
class ch.qos.logback.classic.Logger
classLoader sun.misc.Launcher$AppClassLoader@2a139a55
classLoaderHash 2a139a55
level null
effectiveLevel DEBUG
additivity true
codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
...