Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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 带有log4j2的Apache tomcat 8.5访问日志_Java_Tomcat_Logging_Log4j2 - Fatal编程技术网

Java 带有log4j2的Apache tomcat 8.5访问日志

Java 带有log4j2的Apache tomcat 8.5访问日志,java,tomcat,logging,log4j2,Java,Tomcat,Logging,Log4j2,我尝试使用log4j2更改apachetomcat8.5log。我可以成功地实现它 但是,有一种日志类型是我无法使用log4j2记录的,localhost\u access\u log 此日志是在server.xml文件中设置的 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".

我尝试使用
log4j2
更改
apachetomcat8.5
log。我可以成功地实现它

但是,有一种日志类型是我无法使用
log4j2
记录的,
localhost\u access\u log

此日志是在
server.xml
文件中设置的

<Valve className="org.apache.catalina.valves.AccessLogValve" 
       directory="logs"
       prefix="localhost_access_log" suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />

我如何更改它,使其也通过
log4j2
记录?

如中所述

访问日志记录是一个相关但不同的功能,它是 作为阀门执行。它使用自包含逻辑来编写日志 文件夹。访问日志记录的基本要求是处理 具有低开销的大型连续数据流,因此它只使用 Apache Commons记录自己的调试消息。此实现 这种方法避免了额外的开销和潜在的复杂性 配置有关更多信息,请参阅阀门文档 有关其配置的详细信息,包括各种报告格式

还要检查文档中的

这样说-由于有时会对将所有请求记录到tomcat实例而不会减慢它的速度(很多)施加极端的性能要求,因此这些并不意味着由默认的日志记录实现来控制


如果您绝对需要能够使用log4j2来配置它,并且知道您在做什么,那么您可以通过实现
org.apache.catalina.AccessLog
并在tomcat配置中使用它来创建自己的访问日志阀。

这里给出了一些实现,事实上,我已经用另一种方式解决了这个问题。我使用log4j2的原因是在文件名中滚动没有日期模式的文件名。通读文档后,我发现可以在valve标签中设置renameOnRotate=“true”。所以我的问题已经解决了