Liferay DXP中每个Portlet的单独日志文件

时间:2019-09-26 08:34:48

标签: logging liferay portlet liferay-7 liferay-dxp

在Liferay 6.2中,tomcat / logs文件夹中的每个portlet都有单独的日志文件。 在Liferay 7.1中,我们不再需要此功能,所有portlet的所有日志均写入webapps.log。

在Liferay DXP中,是否有任何方法在每个portlet中也有一个日志文件? 我们使用的是Spring MVC Portlet,而不是OSGI模块。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下至少对OSGI MVC Portlet有效的方法:

创建文件[Your Server]/ROOT/WEB-INF/classes/META-INF/portal-log4j-ext.xml

并添加

    <appender name="MY-PORTLET_FILE" class="org.apache.log4j.rolling.RollingFileAppender">
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="@liferay.home@/logs/[Your Filename].%d{yyyy-MM-dd}.log" />
        </rollingPolicy>

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n" />
        </layout>
    </appender>

    <category name="[Your Portlet Classname]" >
        <priority value="DEBUG" />
        <appender-ref ref="MY-PORTLET_FILE" />
    </category>

然后在portlet类中创建记录器,如下所示:

    Log logger = LogFactoryUtil.getLog(this.getClass().getName());

这里也https://liferay.dev/blogs/-/blogs/how-to-disable-xml-log-files-in-7-x 并与Liferay 7.3.2 GA一起使用