Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 web项目中,如何使log4j在每个会话的基础上记录到不同的文件?_Java_Servlets_Log4j - Fatal编程技术网

在Java web项目中,如何使log4j在每个会话的基础上记录到不同的文件?

在Java web项目中,如何使log4j在每个会话的基础上记录到不同的文件?,java,servlets,log4j,Java,Servlets,Log4j,我试图调试一个发生在客户端站点上的问题,它只发生在客户端站点上,因此我无法在我们的实验室环境中测试它,但是客户端一直在使用系统,因此日志文件中的数据量非常大。此外,如果我将日志记录切换到调试,那么命中单个文件的日志写入量将使服务器崩溃 如何让应用程序将每个http会话记录到不同的日志文件?为了缓解文件的拥塞并使日志文件更具可读性?磁盘在按顺序写入/读取时的性能最好。写入多个文件而不是一个文件对于磁盘来说是一项更大的工作,因为它必须在文件之间跳转。出于性能原因,我不建议使用多个文件。但是,能够调试

我试图调试一个发生在客户端站点上的问题,它只发生在客户端站点上,因此我无法在我们的实验室环境中测试它,但是客户端一直在使用系统,因此日志文件中的数据量非常大。此外,如果我将日志记录切换到调试,那么命中单个文件的日志写入量将使服务器崩溃


如何让应用程序将每个http会话记录到不同的日志文件?为了缓解文件的拥塞并使日志文件更具可读性?

磁盘在按顺序写入/读取时的性能最好。写入多个文件而不是一个文件对于磁盘来说是一项更大的工作,因为它必须在文件之间跳转。出于性能原因,我不建议使用多个文件。但是,能够调试有限数量的会话可能很有用

您可以为每个会话创建一个记录器,方法是将会话id包含在该会话的记录器名称中。然后,可以在不同的日志级别将每个会话记录到不同的文件中


但是,您可能会发现,对于这种级别的控制,您希望自己编写文件,并更紧密地控制它们的行为。e、 g.写入GZIP文件可能会显著减少IO。

是否有允许您写入GZIP文件的log4j或Logback的附加器/配置?您可以写入一个,我不知道现有的附加器/配置。