Java Log4j线程名称混淆
以下是我们在生产中应用程序的部分日志。我们使用的是log4j 配置:Java Log4j线程名称混淆,java,java-8,log4j,Java,Java 8,Log4j,以下是我们在生产中应用程序的部分日志。我们使用的是log4j 配置: <Console name="console" target="SYSTEM_OUT"> <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" /> </Console> [INFO ] 2018-03-10 15:47:16.905 [WebCont
<Console name="console" target="SYSTEM_OUT">
<PatternLayout
pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
</Console>
[INFO ] 2018-03-10 15:47:16.905 [WebContainer : 23] Logger -
[INFO ] 2018-03-10 15:47:16.905 [WebContainer : 23] Logger -
[INFO ] 2018-03-10 15:49:27.320 [WebContainer : 19] Logger -
[INFO ] 2018-03-10 15:49:27.320 [WebContainer : 19] Logger -
[INFO ] 2018-03-10 15:49:27.320 [WebContainer : 19] Logger -
[INFO ] 2018-03-10 15:49:27.320 [WebContainer : 19] Logger -
[INFO ] 2018-03-10 15:49:27.320 [WebContainer : 19] Logger -
[INFO ] 2018-03-10 15:49:27.320 [WebContainer : 19] Logger -
[INFO ] 2018-03-10 15:54:23.703 [WebContainer : 23] Logger -
[INFO ] 2018-03-10 15:54:23.703 [WebContainer : 23] Logger -
[INFO ] 2018-03-10 15:54:23.703 [WebContainer : 23] Logger -
[INFO ] 2018-03-10 15:54:23.703 [WebContainer : 23] Logger -
[信息]2018-03-10 15:47:16.905[网络内容者:23]记录器-
[信息]2018-03-10 15:47:16.905[网络内容者:23]记录器-
[信息]2018-03-10 15:49:27.320[网络内容:19]日志记录
[信息]2018-03-10 15:49:27.320[网络内容:19]日志记录
[信息]2018-03-10 15:49:27.320[网络内容:19]日志记录
[信息]2018-03-10 15:49:27.320[网络内容:19]日志记录
[信息]2018-03-10 15:49:27.320[网络内容:19]日志记录
[信息]2018-03-10 15:49:27.320[网络内容:19]日志记录
[信息]2018-03-10 15:54:23.703[网络内容:23]记录者-
[信息]2018-03-10 15:54:23.703[网络内容:23]记录者-
[信息]2018-03-10 15:54:23.703[网络内容:23]记录者-
[信息]2018-03-10 15:54:23.703[网络内容:23]记录者-
从那里你可以看到有一个线程名“WebContainer:19”和“WebContainer:23”。我们对线程名称感到困惑。具有相同的线程名称是否意味着它们来自相同的请求?我们可以说15:54:23.703发生在2018-03-10 15:47:16.905之后,属于同一个请求
或
这些线程名称是否仅表示同一类的一个进程组?上面的所有行都可以属于同一个请求,但对于在请求中执行的不同类,只是不同的线程名称
请告诉我。每个webcontainer通常都有一个线程池。所有这些线程都在套接字上侦听并接受传入的TCP连接。一旦被接受,数据就可以从新建立的TCP连接中读取、解析并转换为HTTP请求 您在这些日志中看到的“WebContainer:19”和“WebContainer:23”是两个这样的线程,属于WebContainer线程池。是的,它们是不同的 每当每个线程有机会执行时,它都会显示在日志中,因此您可以在这些日志语句中观察到随机性
要优雅地处理线程的这种随机性,并使应用程序正确运行,必须使用多线程概念来构建此类应用程序。WebContainer:23是线程 WebContainer:19是线程B A和B两个请求由WebContainer处理