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上运行时,如何从httpsession上存储的映射中获取值_Tomcat_Logging_Tomcat6_Tomcat Valve - Fatal编程技术网

在Tomcat上运行时,如何从httpsession上存储的映射中获取值

在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

使用Tomcat,通过配置适当的阀,可以将一堆有趣的信息转储到日志文件中

例如:

       <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