2011-08-23 94 views
1

我得到的系统出了以下讯息话题:“的FacesMessage(S)已经排队....”。在JSF 1.2中,如何更改RenderResponsePhase的日志记录级别?

与Sun的Java服务器解决方案Faces实现(1.2_07-B03-FCS)是这个web.xml中添加:

<context-param> 
    <description> 
    Set to true to disable the following warning message: 
    FacesMessage(s) have been enqueued, but may not have been displayed 
    </description> 
    <param-name>com.ibm.ws.jsf.disableEnqueuedMessagesWarning</param-name> 
    <param-value>true</param-value> 
</context-param> 

但由于某些原因,解决方案不符合本实行,我的工作使用 Mojarra(1.2_15-b01-FCS)。

本文档说我需要简单地更改RenderResponsePhase的记录器。
Faces Message(s) habe been encoded...

从本质上讲,我觉得我问的是什么是记录器类我需要配置的RenderResponsePhase。

回答

5

这方面的参数是针对IBM的这是WebSphere的一部分面孔客户端框架。但是你似乎根本没有使用它。添加该上下文参数没有意义。完全删除它。

Mojarra使用java.util.logging API作为记录器。 JSF生命周期记录器(其RenderResponsePhase使用)的记录​​器名称是:

javax.enterprise.resource.webcontainer.jsf.lifecycle 

的记录器是由configureable文件JRE/lib/logging.properties。你首先需要确定你的服务器环境中使用何种JRE(注:JDK也有一个JRE!),然后相应地修改其JRE/lib/logging.properties文件中添加以下行:

javax.enterprise.resource.webcontainer.jsf.lifecycle.level = WARNING 

这将设置为loggable一级向上到“警告”。 “FacesMessage(s)已被排队”消息是一个“信息”。您需要重新启动服务器(以及IDE,如果有的话)才能使更改生效。

我不知道它是多么有用的是禁用它。你试图隐藏的“问题”的根本原因可能会更好地解决。

+0

我想知道是否对于Tomcat 7.0.22,如果可以在conf/logging.properties中添加该行以避免每个Tomcat实例上的消息。快速检查似乎不起作用。 – Pixel

+0

@Pixel:将此VM参数添加到Tomcat启动:'-Djava.util.logging.config.file =/path/to/tomcat/conf/logging.properties'。否则,JRE将被使用。 – BalusC

+1

更好的信息(也由BalusC)是[这里](http://stackoverflow.com/questions/7363704/jsf2-logs-with-tomcat)。 – Pixel