Logging Liferay DXP JSF portlet登录自定义文件和位置

Logging Liferay DXP JSF portlet登录自定义文件和位置,logging,liferay,liferay-7,Logging,Liferay,Liferay 7,JSFPortlet的类是GenericFacesPortlet(这意味着不是MVCPortlet),使用slf4j。 我尝试了resources/META-INF/portlet-log4j.xml(使用dtd),但无法实现在自定义文件和位置中的登录 任何提示都将不胜感激,例如使用GenericFacesPortlet的运行示例。 Liferay修补程序级别为7.1.10.fp14 我想在例如liferay/logs/AuditLog order liferay/tomcat/logs/Aud

JSFPortlet的类是GenericFacesPortlet(这意味着不是MVCPortlet),使用slf4j。 我尝试了resources/META-INF/portlet-log4j.xml(使用dtd),但无法实现在自定义文件和位置中的登录

任何提示都将不胜感激,例如使用GenericFacesPortlet的运行示例。 Liferay修补程序级别为7.1.10.fp14

我想在例如liferay/logs/AuditLog order liferay/tomcat/logs/AuditLog中记录一个类别(组件中的自定义AuditLog类,使用slf4j并由多个portlet使用)

Portlet是在osgi中注册和已知的(该组件只是一个jar依赖项a.t.m.)

代码:

更新

我不会将此作为答案发布,因为对我来说,将文件添加到根目录只是一种解决方法

使用
tomcat/webapps/ROOT/WEB-INF/classes/META-INF/portal-log4j-ext.xml

tomcat/logs下自定义目录中的自定义文件追加器

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

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

<appender name="myAppender" class="org.apache.log4j.rolling.RollingFileAppender">
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" value="${catalina.base}/logs/my-custom-location/my-custom-logfile.%d{yyyy-MM-dd}.log.zip" />
        <param name="ActiveFileName" value="${catalina.base}/logs/my-custom-location/my-custom-logfile.log" />
    </rollingPolicy>

    <layout class="org.apache.log4j.EnhancedPatternLayout">
        <param name="ConversionPattern" value="%d{yyyy/MM/dd HH\:mm\:ss} %-5p [%t][%c{1}:%L] %m%n" />
    </layout>
</appender>

<logger name="my.custom.package">
    <level value="INFO" />
    <appender-ref ref="myAppender" />
</logger>

</log4j:configuration>

前几天我尝试了这个方法,并且能够使用路径src/main/webapp/META-INF/module-log4j-ext.xml,而不是src/main/resources/META-INF/module-log4j-ext.xml

以下是一个例子:

<?xml version="1.0"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <category name="com.liferay.faces.demos.applicant.alloy.facelets.mbf">
        <priority value="DEBUG" />
    </category>
</log4j:configuration>


请提供一份详细的信息。在stackoverflow(检查)中,仅仅询问代码是无关紧要的,但是您可能会在修改现有代码(使其最小化)中找到帮助。这是一个包含相关细节的架构问题。这是关于配置日志以实现自定义某些自定义portlet日志文件名和位置。使用Liferay日志系统com.Liferay.portal.kernel.log.LogFactoryUtil如何?哎哟-“审计”将我的大脑指向了Liferay审计框架的方向-现在我明白了。更好的匹配方式仍然是:“这是我做的”,“这是我观察到的(例如,输出位置错误”,“这是我尝试过的”,“这是我期望的”。相反,“请给我指出示例代码”非常通用。@iLyas,谢谢,我会检查一下,但我猜它也只是登录到默认日志文件,不是吗?嗨,尼尔,谢谢。目前我通过在ROOT/WEB-INF/classes/META-INF中放置一个portal-log4j-ext.xml来做到这一点,但我会尝试一下你的建议,因为我不喜欢挂接。看,Gunn对我不起作用,也许我们的osgi-或者其他配置不够完整。我将坚持使用ROOT/WEB-INF/classes/META-INF/portal-log4j-ext a.t.m。关于这一点,gunI用module-log4j-ext.xml的示例内容更新了答案,这对我来说是有效的。谢谢neil,但主要目标是在自定义位置创建一个自定义文件,而这个a.t.m.只适用于我在问题更新中所述的情况。
<?xml version="1.0"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <category name="com.liferay.faces.demos.applicant.alloy.facelets.mbf">
        <priority value="DEBUG" />
    </category>
</log4j:configuration>