tomcat - Liferay 7 OSGi 模块日志到控制台和文件

标签 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 文件中?

最佳答案

检查 tomcat 的 conf/logging.properties,那里声明了一个 ConsoleHandler 和其他各种声明。这些很可能是罪魁祸首

关于tomcat - Liferay 7 OSGi 模块日志到控制台和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43775133/

相关文章:

java - JSP 文件输出在更改后未更新 [Eclipse 内部 Web 浏览器问题]

java - 如何配置 Magento Enterpise 以使用 Solr 作为主要搜索引擎?

windows - 如何检测 FireFox 弹出窗口的 URL

eclipse - Eclipse中如何关闭Tomcat的自动重启?

tomcat - tom cat 启动但 html 不加载

c# - 如何通过单独的组件配置WCF日志跟踪?

logging - 带有 gorilla 复用器的 Go 记录器装饰器

java - Vaadin 多语言 portlet 组件标题

java - Spring mvc portlet : how to get data from jsp?

tomcat - liferay 6.2 与双因素身份验证集成