0

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

有什么方法可以让 Liferay DXP 中的每个 portlet 也有一个日志文件?我们使用的是 Spring MVC Portlet,而不是 OSGI 模块。

4

1 回答 1

1

您可以尝试以下至少适用于 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 一起使用

于 2020-07-09T09:07:28.720 回答