我们有一个weblogic批处理应用程序,它同时处理来自使用者的多个请求。我们使用log4j来记录puposes。现在我们登录到一个日志文件中以获取多个请求。调试给定请求的问题变得单调乏味,因为对于日志在单个文件中的所有请求。Log4j:每个请求一个日志文件
因此计划是每个请求都有一个日志文件。消费者发送必须执行处理的请求ID。现在,实际上可能有多个用户将请求ID发送到我们的应用程序。所以问题是如何根据请求分段日志文件。
我们无法启动&每次都停止生产服务器,因此排除使用带有日期时间戳或请求ID的覆盖文件appender的要点。这是在下面的文章中解释: http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
我也试图与这些替代玩弄:
http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html
http://www.mail-archive.com/[email protected]/msg05099.html
这种方法提供了预期的效果,但它不工作如果同时发送多个请求,则应该正确。由于一些并发问题日志在这里和那里。
我期待你们的帮助。在此先感谢....
@eqbridges 您是否在log4j中使用过NDC?我从log4j API获得了这个... 嵌套诊断上下文(简称NDC)是一种区分交错日志输出和不同来源的工具。当服务器几乎同时处理多个客户端时,日志输出通常是交错的。 如果来自不同上下文的每个日志条目都有独特的标记,则交织日志输出仍然可能有意义。这是国家数据中心发挥作用的地方。 – 2010-02-25 17:48:25
我过去曾使用过NDC。这真的是你想要做的事情的正确解决方案。如果您尝试为每个请求执行单独的日志文件,那么您只是抓住了遇到的问题的表面。 – 2010-03-09 17:36:00