Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中生成组中的每个请求log4j_Java_Logging - Fatal编程技术网

在java中生成组中的每个请求log4j

在java中生成组中的每个请求log4j,java,logging,Java,Logging,我们面临log4j的问题,因为日志是混乱的。在多个请求中,日志不是按请求打印的,而是按网格排列的,我们要分析的信息不是一件容易的工作 请建议如何处理此场景。Log4J将以到达顺序写入输出。奇怪的是,线程ID不是标准输出的一部分。在log4jv1.x中——早就不推荐使用并且您不应该使用它了,将线程ID添加到格式中相当简单 在Log4J2中,如何获取这一重要信息实际上非常困难,或者至少一点也不明显。应该告诉你你需要知道的一切 总之,您应该在log4j.xml文件中使用log4j声明性格式来获得一致的

我们面临log4j的问题,因为日志是混乱的。在多个请求中,日志不是按请求打印的,而是按网格排列的,我们要分析的信息不是一件容易的工作


请建议如何处理此场景。

Log4J将以到达顺序写入输出。奇怪的是,线程ID不是标准输出的一部分。在log4jv1.x中——早就不推荐使用并且您不应该使用它了,将线程ID添加到格式中相当简单

在Log4J2中,如何获取这一重要信息实际上非常困难,或者至少一点也不明显。应该告诉你你需要知道的一切


总之,您应该在log4j.xml文件中使用log4j声明性格式来获得一致的日志记录。如果你让程序员自己搞清楚自己的日志格式,你很少能得到任何可维护的,甚至是可读的东西。

我不明白你在说什么。使用Log4j2的模式格式(),线程名称(
%t
)和线程id(
%t
%tid
)都是标准的,易于配置。HA!我不知道他们最后加上了这个。这是一个严重的疏忽。唯一比线程Id更重要的是消息负载本身。TID比时间戳更重要。就像OP抱怨的那样,没有这一点你就什么都没有了。很高兴看到他们终于摆脱了集体的束缚。我们是在谈论同样的事情吗?线程名从一开始就存在(通常比线程ID有用得多,线程ID只是一个数字)。线程ID是几年前添加的。在tomcat环境中,线程名称基本上毫无价值。线程ID非常有用,是将一个日志语句与另一个日志语句绑定的唯一方法。当线程ID不可用时,我使用他们的“鱼标记”方法提出了一个解决方案。事实上,我不只是因为使用log4jv1而受到很多批评,因为它有“唯一最重要的特性”。我(显然)已经好几年没有重温log4j文档了。谢谢你的澄清。很抱歉听到你因为推荐人们升级而受到辱骂。你说的“混乱”到底是什么意思?你有没有看到时间戳不按顺序排列?