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 "%r" %s %b" />
我如何更改它,使其也通过log4j2
记录?如中所述
访问日志记录是一个相关但不同的功能,它是
作为阀门执行。它使用自包含逻辑来编写日志
文件夹。访问日志记录的基本要求是处理
具有低开销的大型连续数据流,因此它只使用
Apache Commons记录自己的调试消息。此实现
这种方法避免了额外的开销和潜在的复杂性
配置有关更多信息,请参阅阀门文档
有关其配置的详细信息,包括各种报告格式
还要检查文档中的
这样说-由于有时会对将所有请求记录到tomcat实例而不会减慢它的速度(很多)施加极端的性能要求,因此这些并不意味着由默认的日志记录实现来控制
如果您绝对需要能够使用log4j2来配置它,并且知道您在做什么,那么您可以通过实现
org.apache.catalina.AccessLog
并在tomcat配置中使用它来创建自己的访问日志阀。这里给出了一些实现,事实上,我已经用另一种方式解决了这个问题。我使用log4j2的原因是在文件名中滚动没有日期模式的文件名。通读文档后,我发现可以在valve标签中设置renameOnRotate=“true”。所以我的问题已经解决了