Liferay的log4j的日志配置

学习一个软件,需要了解此软件工作原理,在liferay代码中都使用了log4j的log输出,我们需要设置一下,把这些日志输出出来,方便我们进行调试。

Liferay使用了Apache Log4j处理素有的日志操作,允许我们配置从FATAL到DEBUG不同的信息的输出级别。同时还可以配置显示不同的包或者类的日志信息的输出级别。

缺省情况下,日志是使用CONSOLE标准输出的,在屏幕上可以看到,当然一些应用服务器是将这些信息输出到应用服务器的日志中的。例如:
Tomcat: $TOMCAT/bin/catalina.out
Geronimo: $GERONIMO/var/log/geronimo.log
JBoss: $JBOSS/server/default/log/

使用Admin Portlet进行动态配置,使用test用户登录后,选择Admin的Portlet,在Server页签下面的Log Levels,将列出所有的管理的类的日志级别,从每一行的Level级别中选择一个输出级别,然后点下面的保存按钮就完成了设置,但这个设置是临时性的,设置在内存中,当服务器重新启动后,此次设置就失效了,因此系统重新读取了META-INF/portal-log4j.xml的配置,这个配置文件在portal-impl.jar包中。

为了使配置长久有效,因此需要自己定义一个扩展的配置文件portal-log4-ext.xml,在这个文件中的配置将override全部或者部分portal-log4j.xml的配置。首先拷贝portal-log4j.xml到portal-log4-ext.xml。建议保留你所要修改的入口,删除其他你不需要修改的入口。

例如我们需要将hibernate的级别修改成为INFO
<category name="org.hibernate">
<priority value="ERROR" />
</category>

新的portal-log4-ext.xml文件如下:
<?xml version="1.0"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<category name="org.hibernate">
<priority value="INFO" />
</category>
</log4j:configuration>

一旦定义好了portal-log4-ext.xml,你必须将此文件部署到classpath中的META-INF下面,同时将log4j.dtd文件拷贝过去。

对于JBOSS用户注意,JBOSS的$JBOSS/server/default/conf/log4j.xml将会override liferay的日志配置,认真阅读JOBSS的日志文件。

log4j的初始化是在MainServlet被加载的时候进行的,在InitAction.run()方法中:

if (GetterUtil.getBoolean(SystemProperties.get("log4j.configure.on.startup"), true) && !ServerDetector.isSun()) {

ClassLoader classLoader = getClass().getClassLoader();

Log4JUtil.configureLog4J(classLoader.getResource("META-INF/portal-log4j.xml"));
Log4JUtil.configureLog4J(classLoader.getResource("META-INF/portal-log4j-ext.xml"));
}

如果portal-log4-ext.xml不工作,一般两个原因,一个是没有找到文件,另外一个是文件内语法错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值