在Tomcat上运行时,如何从httpsession上存储的映射中获取值
使用Tomcat,通过配置适当的阀,可以将一堆有趣的信息转储到日志文件中 例如:在Tomcat上运行时,如何从httpsession上存储的映射中获取值,tomcat,logging,tomcat6,tomcat-valve,Tomcat,Logging,Tomcat6,Tomcat Valve,使用Tomcat,通过配置适当的阀,可以将一堆有趣的信息转储到日志文件中 例如: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost." suffix=".txt" pattern='%s %b %I %{myname}s' resolveHost
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost."
suffix=".txt"
pattern='%s %b %I %{myname}s'
resolveHosts="false"/>
有关更多信息,请参阅
但是,我只想输出一个特定键的值,而不是整个映射。我试过:
%{mymap.myatt}s
但这是行不通的。有什么办法吗?在源代码中查找,搜索字符串SessionAttributeElement
。这就是值将%{mymap}s
转换为字符串所做的工作,而且看起来您无法深入到映射中
您可以扩展这个类并覆盖createAccessLogElement
方法,为不同的模式(比如%{mymap.myatt}m
)添加另一个处理程序,然后以与SessionAttributeElement
类类似的方式处理逻辑,但将头拆分为会话属性名称和映射键
%{mymap.myatt}s