只有一个文件。它是在网络应用副本运行时同时编写的。
如何从其他日志行中仅过滤一条 session 日志消息?
最佳答案
使用包含 NDC 或 MDC 信息的 servlet 过滤器是我见过的最佳方式。两者的快速比较可在 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(通过属性文件),并确保您记录每个请求的第一件事是 session 标识符。它不太合适(或有用),但它可以用于小批量应用程序。
关于java - 如何区分日志文件中的 log4j session 与同一 Web 应用程序的副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763925/