Print the logger information, update the logger level ### Usage #### Print the logger information `logger`{{execute T2}} ```bash [arthas@2062]$ logger name ROOT class ch.qos.logback.classic.Logger classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d level INFO effectiveLevel INFO additivity true codeSource jar:file:/home/scrapbook/tutorial/demo-arthas-spring-boot.jar!/BOOT-INF/lib/logback-classi c-1.1.11.jar!/ appenders name CONSOLE class ch.qos.logback.core.ConsoleAppender classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d target System.out ... ``` #### View logger information for the special name `logger -n org.springframework.web`{{execute T2}} ```bash [arthas@2062]$ logger -n org.springframework.web name org.springframework.web class ch.qos.logback.classic.Logger classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d level null effectiveLevel INFO additivity true codeSource jar:file:/home/scrapbook/tutorial/demo-arthas-spring-boot.jar!/BOOT-INF/lib/logback-classi c-1.1.11.jar!/ ``` Please write down your classLoaderHash here, in the case here, it's `5674cd4d`. It will be used in the future steps. Note: Please replace `` with your classLoaderHash above, then execute the commands manually in the following steps: #### View logger information for the special classloader Note that the hashcode changes, you need to check the current ClassLoader information first, and extract the hashcode corresponding to the ClassLoader. if you use`-c`, you have to manually type hashcode by `-c `. ```bash $ logger -c 5674cd4d ``` For classloader with only one instance, it can be specified by `--classLoaderClass` using class name, which is more convenient to use. `logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader`{{execute T2}} ```bash [arthas@2062]$ logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader name ROOT class ch.qos.logback.classic.Logger classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d level INFO effectiveLevel INFO additivity true codeSource jar:file:/home/scrapbook/tutorial/demo-arthas-spring-boot.jar!/BOOT-INF/lib/logback-classi c-1.1.11.jar!/ appenders name CONSOLE class ch.qos.logback.core.ConsoleAppender classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d target System.out ... ``` The value of `--classloaderclass` is the class name of classloader. It can only work when it matches a unique classloader instance. The purpose is to facilitate the input of general commands. However, `-c ` is dynamic. #### Update logger level `logger --name ROOT --level debug`{{execute T2}} ```bash [arthas@2062]$ logger --name ROOT --level debug update logger level success. ``` PS: Here it will come up with an error message in tutorial, we have to specify the classloader. #### Speecify classloader to update logger level By default,logger command will be executed under SystemClassloader, if the application is a traditional `war`, or using spring boot fat jar, then it needs to specify classloader。 You can first use `sc -d yourClassName` to check specified classloader hashcode,then specify classloader when updating logger level: `logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --name ROOT --level debug`{{execute T2}} ```bash [arthas@2062]$ logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --name ROOT --level debug ``` #### View the logger information without appenders By default, the `logger` command only prints information about the logger with appenders. If you want to see information about loggers without `appender`, you can use the parameter `--include-no-appender`. Note that the output will usually be very long. `logger --include-no-appender`{{execute T2}} ```bash [arthas@2062]$ logger --include-no-appender name org.thymeleaf class ch.qos.logback.classic.Logger classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d level null effectiveLevel INFO additivity false codeSource jar:file:/home/scrapbook/tutorial/demo-arthas-spring-boot.jar!/BOOT-INF/lib/logback-classi c-1.1.11.jar!/ appenders name DEBUG_LEVEL_REMAPPER class org.springframework.boot.logging.logback.LevelRemappingAppender classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5674cd4d classLoaderHash 5674cd4d ... ```