当前位置: 首页 > 面试题库 >

您如何区分日志文件中的log4j会话和同一Web应用程序的副本?

赏光霁
2023-03-14
问题内容

只有一个文件。并且它是在Web应用程序副本运行时同时编写的。

如何仅从其他日志行中过滤一个会话日志消息?


问题答案:

我所见过的最好的方法是将Servlet筛选器与NDC或MDC信息一起使用。可以在http://wiki.apache.org/logging-
log4j/NDCvsMDC
上对两者进行快速比较。

我发现MDC过去对我来说效果更好。请记住,您将需要更新log4j属性文件以包括您喜欢的任何版本(模式定义位于http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html)。

有关使用servlet过滤器配置MDC的完整示例,请参见http://veerasundar.com/blog/2009/11/log4j-mdc-
mapped-diagnostic-context-example-
code/

稍微易于配置,但明显劣等的选择:您可以选择仅打印每个请求的线程ID(通过属性文件),并确保您记录的每个请求的第一件事是会话标识符。它不是适当的(或有用的),但是可以用于小批量的应用程序。



 类似资料:
  • 我知道和都在/usr/local/Spark/jars中,尽管在pom.xml中排除了这些jar,但Spark很可能引用了这些jar,因为如果删除它们,在spark-submit的运行时会给出一个ClassNotFoundException。 我的问题是:有没有一种方法可以在我的应用程序中使用Logback实现本机日志记录,同时保留Spark的内部日志记录功能。理想情况下,我希望将我的日志返回应用

  • 问题内容: 我正在尝试为不同的软件包设置单独的日志文件。我正在使用Wrapper类作为记录器。我的应用程序中的每个类都调用相同的包装器类。我的包装器类: 它的名称如下: 有没有一种方法可以配置log4j,以便将不同包的日志记录输出到不同文件? 谢谢! 编辑: 这是我的文件: 问题答案: 如果在MyLogger类中创建静态Logger,则您将有一个Logger实例,其名称设置为MyLogger。当您

  • 问题内容: 我有一个日志文件,其中添加了以下附加程序: 事实是,每次我运行我的应用程序时,其他日志记录信息都会附加到同一日志文件中。每次我该怎么做才能覆盖文件? 问题答案: 使用RollingFileAppender。

  • 我有一个log4j2.xml文件,我配置如下: 现在,我想自定义将数据记录到commons中。日志和分析。日志文件。 java中的示例: 我想在需要时自定义将日志写入每个文件,例如: 问题:我怎么做?请帮助我解决log4j2中的所有问题。xml文件和Java代码示例。 谢谢!

  • 问题内容: 是否可以在J2EE应用程序(EAR)中配置两个单独的Web应用程序(WAR)来访问共享会话上下文? 更多信息: 我最终从EAR创建了一个共享类,该类将所需的信息存储在静态成员中。即使看起来很脏,这也能解决问题。 问题答案: 不直接。大多数容器将每个WAR放置在以EAR类加载器作为其父级的单独的类加载器中。每个应用程序的会话都是独立的。您可以在每个会话中放入父EAR提供的内容。如果您需要

  • 当我们在一个纱线会话中运行多个flink作业时。我们发现所有作业的日志都写入同一个文件“taskmanager.log”,我们很难检查特定作业的日志。有没有办法把它们分开? 除此之外,如果我们的flink作业长时间运行,如何根据日期分离日志文件?