在JSF 1.2中,如何更改RenderResponsePhase的日志级别?

Jef*_*Jak 1 java jsf logging jsf-1.2

我在系统中得到以下消息:" FacesMessage已被排队...... ".

使用Sun的JavaServer 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>
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,该解决方案不适用于我使用 Mojarra(1.2_15-b01-FCS)的实现.

该文档说我只需要更改RenderResponsePhase的记录器.
Faces Message(s)已被编码...

从本质上讲,我想我要问的是我需要为RenderResponsePhase配置什么是logger类.

Bal*_*usC 5

该上下文参数特定于IBM的Faces Client Framework,它是WebSphere的一部分.但你似乎根本就没有使用它.没有必要添加上下文参数.完全删除它.

Mojarra使用java.util.loggingAPI作为记录器.JSF生命周期记录器(RenderResponsePhase正在使用)的记录器名称是:

javax.enterprise.resource.webcontainer.jsf.lifecycle
Run Code Online (Sandbox Code Playgroud)

记录器可按JRE/lib/logging.properties文件配置.首先需要确定服务器环境使用的JRE(注意:JDK也有JRE!)然后相应地编辑其JRE/lib/logging.properties文件以添加以下行:

javax.enterprise.resource.webcontainer.jsf.lifecycle.level = WARNING
Run Code Online (Sandbox Code Playgroud)

这会将可记录级别1设置为"警告"."FacesMessage(s)已入队"消息是一个"INFO".您需要重新启动服务器(以及IDE,如果有的话!)以使更改生效.

然而,我想知道禁用它是多么有用.您试图隐藏的"问题"的根本原因可能更好地得到了解决.