我最近遇到了Liferay/Tomcat日志堵塞的问题,因为几个portlet记录到相同的文件,这使得有时很坚韧跟踪问题。我决定为每个portlet都有一个日志文件,这样更容易跟踪问题,我发现了一些有用的文章,但是无论我怎么尝试,我都无法创建自定义日志文件(并通过扩展名写入)。liferay-plugin-package.properties:
portal-dependency-jars=\
log4j.jar,\
log4j-extras.jar
我的log4j.xml看起来像这样:
<?xml version="1.0"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n" />
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="../../logs/portrait-manager-portlet.%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>
<!-- test is a legitimate package name in my code -->
<category name="com.test" >
<priority value="DEBUG" />
</category>
<root>
<priority value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
最后,日志记录是以这种方式完成的,如文章所述:
private static Logger log = Logger.getLogger(PortraitManagerServiceImpl.class);
log.info("testing log4j logging");
同样,如前所述,控制台日志记录工作正常,但日志文件从未创建,因此无法写入。如果有人对此行为有任何建议或见解,我将不胜感激,如果他们可以分享。
编辑:我正在使用Liferay 6.2 b1和tomcat 7.0.40(包含在Liferay 6.2包中)
3条答案
按热度按时间wooyq4lh1#
我正在使用
log4j.properties
和它的工作。try by property文件并通过调用
iszxjhcz2#
请您检查一下,如果目录路径="../../logs/portrait-manager ;是一个有效的w.r.t部署位置。很多时候,如果您的目录不够深,(例如,C:\webapps);这种相对路径会变得无效。2试着输入一个具体的路径和具体的文件名,看看这是否有效。3然后你可以在文件名和相对路径中使用模式。
此外,附加器定义缺少阈值参数。请尝试添加该参数,然后查看是否有效。
编辑1:
配置示例:
ldfqzlk83#
在属性文件中添加阈值
在java文件中
例如:记录器应用程序_LOGS =记录器。getLogger(“根记录器”);调试(“正在启动”);或APPLICATION_LOGS.info(“正在启动”);工作。