Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Tomcat Log4j2:如何将日志写入WEB-INF中的文件夹?_Tomcat_Logging_Web Applications_Log4j2_Web Inf - Fatal编程技术网

Tomcat Log4j2:如何将日志写入WEB-INF中的文件夹?

Tomcat Log4j2:如何将日志写入WEB-INF中的文件夹?,tomcat,logging,web-applications,log4j2,web-inf,Tomcat,Logging,Web Applications,Log4j2,Web Inf,我正在使用Tomcat。我希望在WEB应用程序的WEB-INF文件夹中写入一些Log4j2日志。例如: <RollingRandomAccessFile name="MyLog" fileName="${????}/logs/MyLog.log"> 我如何才能做到这一点?这是一个坏主意,由于以下不完整的原因不能保证有效: 您的应用程序服务器甚至可能无法解压缩WAR文件,因此您没有可写入的文件系统:应用程序可以轻松地从WAR文件运行。 如果您有一个实际的文件系统支持的应用程序:应用程

我正在使用Tomcat。我希望在WEB应用程序的WEB-INF文件夹中写入一些Log4j2日志。例如:

<RollingRandomAccessFile name="MyLog" fileName="${????}/logs/MyLog.log">

我如何才能做到这一点?

这是一个坏主意,由于以下不完整的原因不能保证有效:

您的应用程序服务器甚至可能无法解压缩WAR文件,因此您没有可写入的文件系统:应用程序可以轻松地从WAR文件运行。 如果您有一个实际的文件系统支持的应用程序:应用程序的下一次部署将删除您的日志文件 出于安全原因,不允许web应用程序重写自己是一个很好的理由——虽然您只能使单个日志目录可写,但这不是一个好的策略,并且在下一次部署时,权限将很容易更改
而是将特定的日志目录分配给应用程序服务器,并将其用于输出。在那里,您可以在一个众所周知的地方配置日志轮换等,而不是在所有可能采用这种配置方式的web应用程序中进行配置。

是的,但您不知道该用例。例如,有一个文件系统,这些日志是临时的,可能会被删除。我真的需要这样做,而你的论点,虽然经过深思熟虑,但并不适用于这个特殊的案例。我仍然不知道这个用例。您给出的参数中没有一个要求日志文件必须写入app目录,因此我支持我的参数,将它们放在其他地方。当日志确实是临时的时,应该显式地记录它们,而不是依赖下一次部署来擦除它们。使用最佳实践也将有助于下一个维护人员。