Liferay中的记录器无法正常工作

时间:2013-12-18 07:33:30

标签: java tomcat logging liferay portlet

我正在使用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日志中。可能出了什么问题?

2 个答案:

答案 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);
}