diff --git a/README_CN.md b/README_CN.md index aac2737e..df806244 100644 --- a/README_CN.md +++ b/README_CN.md @@ -30,7 +30,7 @@ English version goes [here](README.md). ### [在线教程(推荐)](https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn) -* [Usages](tutorials/katacoda/README_CN.md#在线教程使用方法) +* [使用方法](tutorials/katacoda/README_CN.md#在线教程使用方法) ### 快速开始 diff --git a/tutorials/katacoda/arthas-advanced-cn/case-classloader.md b/tutorials/katacoda/arthas-advanced-cn/case-classloader.md index 8555a751..110cdca4 100644 --- a/tutorials/katacoda/arthas-advanced-cn/case-classloader.md +++ b/tutorials/katacoda/arthas-advanced-cn/case-classloader.md @@ -88,7 +88,7 @@ $ classloader -t 比如上面查看到的spring LaunchedURLClassLoader的 hashcode是`1be6f5c3`,可以通过`-c`或者`--classLoaderClass`参数来列出它的所有urls: -`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader` +`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader`{{execute T2}} ``` $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader @@ -100,7 +100,7 @@ jar:file:/home/scrapbook/tutorial/demo-arthas-spring-boot.jar!/BOOT-INF/lib/spri ### 加载指定ClassLoader里的资源文件 -查找指定的资源文件: `classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -r logback-spring.xml` +查找指定的资源文件: `classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -r logback-spring.xml`{{execute T2}} ``` $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -r logback-spring.xml @@ -111,7 +111,7 @@ $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClas 比如用上面的spring LaunchedURLClassLoader 尝试加载 `java.lang.String` : -`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --load java.lang.String` +`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --load java.lang.String`{{execute T2}} ``` $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --load java.lang.String diff --git a/tutorials/katacoda/arthas-advanced-en/case-classloader.md b/tutorials/katacoda/arthas-advanced-en/case-classloader.md index d1725102..2e471715 100644 --- a/tutorials/katacoda/arthas-advanced-en/case-classloader.md +++ b/tutorials/katacoda/arthas-advanced-en/case-classloader.md @@ -89,7 +89,7 @@ Note: Please replace `` with your classLoaderHash above, then e For example, the hashcode of spring `LaunchedURLClassLoader` viewed above is `1be6f5c3`, and all its urls can be listed by the `-c` parameter: -`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader` +`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader`{{execute T2}} ``` $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader @@ -101,7 +101,7 @@ jar:file:/home/scrapbook/tutorial/demo-arthas-spring-boot.jar!/BOOT-INF/lib/spri ### Load the resource file in the specified ClassLoader -Load the specified resource file: `classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -r logback-spring.xml` +Load the specified resource file: `classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -r logback-spring.xml`{{execute T2}} ``` $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -r logback-spring.xml @@ -112,7 +112,7 @@ $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClas For example, try loading `java.lang.String` with spring LaunchedURLClassLoader : -`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --load java.lang.String` +`classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --load java.lang.String`{{execute T2}} ``` $ classloader --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --load java.lang.String diff --git a/tutorials/katacoda/case-classloader-cn/start-demo.md b/tutorials/katacoda/case-classloader-cn/start-demo.md new file mode 100644 index 00000000..59be66ea --- /dev/null +++ b/tutorials/katacoda/case-classloader-cn/start-demo.md @@ -0,0 +1,14 @@ + + + + +下载`demo-arthas-spring-boot.jar`,再用`java -jar`命令启动: + +`wget https://github.com/hengyunabc/spring-boot-inside/raw/master/demo-arthas-spring-boot/demo-arthas-spring-boot.jar +java -jar demo-arthas-spring-boot.jar`{{execute T1}} + +`demo-arthas-spring-boot`是一个很简单的spring boot应用,源代码:[查看](https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-arthas-spring-boot) + +启动之后,可以访问80端口: https://[[HOST_SUBDOMAIN]]-80-[[KATACODA_HOST]].environments.katacoda.com + +![Demo Web](/arthas/scenarios/common-resources/assets/demo-web.png) \ No newline at end of file diff --git a/tutorials/katacoda/command-help-cn/help.md b/tutorials/katacoda/command-help-cn/help.md index 0879750f..8832d941 100644 --- a/tutorials/katacoda/command-help-cn/help.md +++ b/tutorials/katacoda/command-help-cn/help.md @@ -16,4 +16,4 @@ trace Trace the execution time of specified method invocation. watch Display the input/output parameter, return object, and thrown exception of specified method invocation ... -``` \ No newline at end of file +``` diff --git a/tutorials/katacoda/command-help-en/help.md b/tutorials/katacoda/command-help-en/help.md index 84d45d85..110aaec6 100644 --- a/tutorials/katacoda/command-help-en/help.md +++ b/tutorials/katacoda/command-help-en/help.md @@ -16,4 +16,4 @@ The `help`{{execute T2}} command allows you to view help information for all com trace Trace the execution time of specified method invocation. watch Display the input/output parameter, return object, and thrown exception of specified method invocation ... -``` \ No newline at end of file +``` diff --git a/tutorials/katacoda/command-help-en/index.json b/tutorials/katacoda/command-help-en/index.json index 8c88a12d..a8da89b6 100644 --- a/tutorials/katacoda/command-help-en/index.json +++ b/tutorials/katacoda/command-help-en/index.json @@ -1,6 +1,6 @@ { - "title": "Arthas Basics", - "description": "Arthas Basics", + "title": "Arthas Help Command", + "description": "Arthas Help Command", "details": { "steps": [ { diff --git a/tutorials/katacoda/command-logger-cn/logger.md b/tutorials/katacoda/command-logger-cn/logger.md index 79ccc31e..7dc66dbe 100644 --- a/tutorials/katacoda/command-logger-cn/logger.md +++ b/tutorials/katacoda/command-logger-cn/logger.md @@ -9,29 +9,21 @@ ```bash [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] + 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 +... ``` @@ -41,17 +33,18 @@ ```bash [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 + 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!/ ``` -请记下你的classLoaderHash,后面需要使用它。在这里,它是 `2a139a55`。 +请记下你的classLoaderHash,后面需要使用它。在这里,它是 `5674cd4d`。 注意:请使用你的classLoaderHash值覆盖 `` ,然后手动执行下面所述命令: @@ -62,42 +55,32 @@ 如果你使用`-c`,你需要手动输入hashcode:`-c ` ```bash -$ logger -c 2a139a55 +$ logger -c 5674cd4d ``` 对于只有唯一实例的ClassLoader可以通过`--classLoaderClass`指定class name,使用起来更加方便: -`logger --classLoaderClass sun.misc.Launcher$AppClassLoader`{{execute T2}} +`logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader`{{execute T2}} ```bash -[arthas@2062]$ logger --classLoaderClass sun.misc.Launcher$AppClassLoader - 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] +[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 +... ``` - * 注: 这里classLoaderClass 在 java 8 是 sun.misc.Launcher$AppClassLoader,而java 11的classloader是jdk.internal.loader.ClassLoaders$AppClassLoader,katacoda目前环境是java8。 - `--classLoaderClass` 的值是ClassLoader的类名,只有匹配到唯一的ClassLoader实例时才能工作,目的是方便输入通用命令,而`-c `是动态变化的。 #### 更新logger level @@ -109,16 +92,18 @@ $ logger -c 2a139a55 update logger level success. ``` +注意:在教程中执行会提示错误,需要指定classloader + #### 指定classloader更新 logger level 默认情况下,logger命令会在SystemClassloader下执行,如果应用是传统的`war`应用,或者spring boot fat jar启动的应用,那么需要指定classloader。 可以先用 `sc -d yourClassName` 来查看具体的 classloader hashcode,然后在更新level时指定classloader: -`logger --classLoaderClass sun.misc.Launcher$AppClassLoader --name ROOT --level debug`{{execute T2}} +`logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --name ROOT --level debug`{{execute T2}} ```bash -[arthas@2062]$ logger --classLoaderClass sun.misc.Launcher$AppClassLoader --name ROOT --level debug +[arthas@2062]$ logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --name ROOT --level debug ``` #### 查看没有appender的logger的信息 @@ -132,46 +117,18 @@ update logger level success. ```bash [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 + 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 ... ``` diff --git a/tutorials/katacoda/command-logger-en/arthas-demo.md b/tutorials/katacoda/command-logger-en/arthas-demo.md deleted file mode 100644 index fd3eb4fb..00000000 --- a/tutorials/katacoda/command-logger-en/arthas-demo.md +++ /dev/null @@ -1,11 +0,0 @@ - - - - -Download `arthas-demo.jar` and start with the `java -jar` command: - -`wget https://arthas.aliyun.com/arthas-demo.jar -java -jar arthas-demo.jar`{{execute T1}} - -`arthas-demo` is a very simple program that randomly generates integers, performs factorization, and prints the results. -If the generated random number is negative, a error message will be printed. diff --git a/tutorials/katacoda/command-logger-en/index.json b/tutorials/katacoda/command-logger-en/index.json index 91bacb75..7739c615 100644 --- a/tutorials/katacoda/command-logger-en/index.json +++ b/tutorials/katacoda/command-logger-en/index.json @@ -6,8 +6,8 @@ "details": { "steps": [ { - "title": "Arthas demo", - "text": "arthas-demo.md" + "title": "Start demo", + "text": "start-demo.md" }, { "title": "Start arthas-boot", diff --git a/tutorials/katacoda/command-logger-en/logger.md b/tutorials/katacoda/command-logger-en/logger.md index 0985b36f..42549e1c 100644 --- a/tutorials/katacoda/command-logger-en/logger.md +++ b/tutorials/katacoda/command-logger-en/logger.md @@ -9,29 +9,21 @@ Print the logger information, update the logger level ```bash [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] + 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 @@ -40,18 +32,19 @@ Print the logger information, update the logger level ```bash [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 + 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 `2a139a55`. It will be used in the future steps. +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: @@ -62,42 +55,32 @@ Note that the hashcode changes, you need to check the current ClassLoader inform if you use`-c`, you have to manually type hashcode by `-c `. ```bash -$ logger -c 2a139a55 +$ 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 sun.misc.Launcher$AppClassLoader`{{execute T2}} +`logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader`{{execute T2}} ```bash -[arthas@2062]$ logger --classLoaderClass sun.misc.Launcher$AppClassLoader - 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] +[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 +... ``` - * PS: Here the classLoaderClass in java 8 is sun.misc.Launcher$AppClassLoader, while in java 11 it's jdk.internal.loader.ClassLoaders$AppClassLoader. Currently katacoda using java 8. - 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 @@ -109,16 +92,18 @@ The value of `--classloaderclass` is the class name of classloader. It can only 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 sun.misc.Launcher$AppClassLoader --name ROOT --level debug`{{execute T2}} +`logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --name ROOT --level debug`{{execute T2}} ```bash -[arthas@2062]$ logger --classLoaderClass sun.misc.Launcher$AppClassLoader --name ROOT --level debug +[arthas@2062]$ logger --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --name ROOT --level debug ``` #### View the logger information without appenders @@ -132,46 +117,18 @@ Note that the output will usually be very long. ```bash [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 + 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 ... ``` diff --git a/tutorials/katacoda/command-logger-en/start-demo.md b/tutorials/katacoda/command-logger-en/start-demo.md new file mode 100644 index 00000000..4915b847 --- /dev/null +++ b/tutorials/katacoda/command-logger-en/start-demo.md @@ -0,0 +1,14 @@ + + + + +Download `demo-arthas-spring-boot.jar`, and start with `java -jar` command: + +`wget https://github.com/hengyunabc/spring-boot-inside/raw/master/demo-arthas-spring-boot/demo-arthas-spring-boot.jar +java -jar demo-arthas-spring-boot.jar`{{execute T1}} + +`demo-arthas-spring-boot` is a simple Spring Boot demo, the source code here: [View](https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-arthas-spring-boot) + +After booting, access port 80: https://[[HOST_SUBDOMAIN]]-80-[[KATACODA_HOST]].environments.katacoda.com + +![Demo Web](/arthas/scenarios/common-resources/assets/demo-web.png) \ No newline at end of file