在 Liferay 6.2 中,我们在 tomcat/logs 文件夹中的每个 portlet 都有一个单独的日志文件。在 Liferay 7.1 中我们不再有这个,所有 portlet 的所有日志都写入 webapps.log。
有什么方法可以让 Liferay DXP 中的每个 portlet 也有一个日志文件?我们使用的是 Spring MVC Portlet,而不是 OSGI 模块。
在 Liferay 6.2 中,我们在 tomcat/logs 文件夹中的每个 portlet 都有一个单独的日志文件。在 Liferay 7.1 中我们不再有这个,所有 portlet 的所有日志都写入 webapps.log。
有什么方法可以让 Liferay DXP 中的每个 portlet 也有一个日志文件?我们使用的是 Spring MVC Portlet,而不是 OSGI 模块。
您可以尝试以下至少适用于 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 一起使用