Liferay 7 OSGi模块记录到控制台和文件

时间:2017-05-04 06:11:26

标签: tomcat logging liferay liferay-7

我在tomcat 8上使用liferay 7.我创建了自己的portlet作为OSGi模块并添加了日志记录。

在java类

import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
...
private static Log log = LogFactoryUtil.getLog(ClassName.class);
...
log.info("Message");

位于\ main \ resources \ META-INF \ module-log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender class="org.apache.log4j.rolling.RollingFileAppender" name="file">
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="${catalina.home}/logs/portlet-name.log" />
        </rollingPolicy>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n" />
        </layout>
    </appender>

    <logger name="packagename.classname">
        <level value="debug"/>
        <appender-ref ref="file" />
    </logger>
</log4j:configuration>

此工作和日志写入/liferay/tomcat/logs/portlet-name.log文件!但同时将日志写入控制台和catalina.out文件。

如何在控制台中禁用portlet日志记录并将其保留在portlet-name.log文件中?

1 个答案:

答案 0 :(得分:1)

检查tomcat的conf / logging.properties,其中有一个ConsoleHandler和其他各种声明。最有可能的是罪魁祸首