Apache tomcat 8.5使用log4j2访问日志

时间:2018-04-13 05:53:35

标签: java tomcat logging log4j2

我尝试使用Apache Tomcat 8.5更改log4j2日志。我可以成功实现它。

但是,有一种日志类型,我无法使用log4j2localhost_access_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也可以记录?

1 个答案:

答案 0 :(得分:1)

Tomcat 8.5 Documentation:

中所述
  

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

另请查看Access Log Valve

的文档

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

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