你有没有看过一个能在Log4j中根据NDC分离文件的appender?

Joh*_*sch 3 java logging log4j

我们只有极少数的客户(少于50个),我们希望每个客户都有自己独立的日志文件,其所有服务器端日志信息都会记录在其中.我知道您可以使用NDC和过滤器使用Log4j中的标准appender将日志语句定向到不同的文件,但这需要更多的设置(为所有现有客户创建记录器)并且它不会自动适应添加的新客户进入系统.

你有没有见过一个appender会根据Log4j NDC值将日志语句拆分成单独的文件?我想我可以建立一个新的appender来做它但我不能说如果我能得到一些已经构建好的东西我想要.

Cek*_*eki 5

带有logback(log4j的后继者)的SiftingAppender正是为处理这种情况而设计的.

顾名思义,a SiftingAppender可用于根据给定的运行时属性分离(或筛选)日志记录.例如,SiftingAppender可以根据用户会话分离日志记录事件,以便每个用户生成的日志进入不同的日志文件,每个用户一个日志文件.例如,SiftingAppender可以将日志记录事件分成不同的日志文件,每个用户一个文件.

SiftingAppender文档包含一个基于用户ID分隔日志的示例.