我正在使用Liferay 6.20和tomcat。
根据这篇文章:Liferay: what is the default approach for logging in Liferay?我已经在我的基本portlet类中添加了一个记录器,如下所示:
package mypackage.katalog;
import java.io.IOException;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;
/**
* Portlet implementation class KatalogUslugPortlet
*/
public class KatalogUslugPortlet extends MVCPortlet {
private static Log _log = LogFactoryUtil.getLog(KatalogUslugPortlet.class);
@Override
public void processAction(ActionRequest actionRequest,
ActionResponse actionResponse) throws IOException, PortletException {
testLogger();
super.processAction(actionRequest, actionResponse);
}
private void testLogger() {
System.out.print("SYSTEM_OUT!!!");
_log.info("INFO!!!");
_log.debug("DEBUG!!!");
_log.error("ERROR!!!");
}
}
并且日志既不出现在控制台中,也不出现在tomcat日志中。可能出了什么问题?
答案 0 :(得分:5)
Liferay记录器不能以这种方式工作,您可以使用Liferay管理员登录,转到管理员 - >控制面板 - >服务器管理 - >日志级别 - >添加类别。
添加类别mypackage.katalog
,并设置级别All
。
现在,当您转到portlet时,您将看到所有日志。请记住,一旦重新启动服务器,就必须再次执行此过程!
答案 1 :(得分:2)
问题不在记录器中。我的portlet只是拖放到我的网站中,我认为processAction(...)
是每个网站刷新后调用的方法。实际上它应该使用doView(...)
方法,如下所示:
@Override
public void doView(RenderRequest renderRequest,
RenderResponse renderResponse) throws IOException, PortletException {
testLogger();
super.doView(renderRequest, renderResponse);
}