Tomcat和Liferay的log配置

Tomcat使用JDK的log包:

catalina.sh中设置logging配置文件-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties,在该配置文件中设置了file和console的handler

相关实现类有org.apache.juli.logging包下的LogFactory和DirectJDKLog

其中catalina.out是个特殊的东西,它不是由logging包输出的,而是stdout(一般是console)被转存到了文件中去。由于默认logging.properties中都把consolehandler作为默认输出,所以只要是console上打出来的都会进这个文件。官方文档有一段详细说明:http://tomcat.apache.org/tomcat-6.0-doc/logging.html

如果不想要console输出,可以把直接去掉它。

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler



Liferay默认使用JDK log, 如果跑在tomcat下而不配置log4j的话,就会与Tomcat使用相同的logging配置,输出到相同的地方,一般是catalina.out.

Liferay配置log4j的方法如下,先看实现:


com.liferay.portal.util.InitUtil


if (GetterUtil.getBoolean(SystemProperties.get(

"log4j.configure.on.startup"), true)) {


ClassLoader classLoader = InitUtil.class.getClassLoader();


Log4JUtil.configureLog4J(

classLoader.getResource("META-INF/portal-log4j.xml"));

Log4JUtil.configureLog4J(

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

}

try {

LogFactoryUtil.setLogFactory(new Log4jLogFactoryImpl());

}

catch (Exception e) {

e.printStackTrace();

}


com.liferay.portal.kernel.log.LogFactoryUtil


public static void setLogFactory(LogFactory logFactory) {

for (Map.Entry entry : _logWrappers.entrySet()) {

String name = entry.getKey();


LogWrapper logWrapper = entry.getValue();


logWrapper.setLog(logFactory.getLog(name));

}

_logFactory = logFactory;

}


private static volatile LogFactory _logFactory = new Jdk14LogFactoryImpl();



可见需要配置自己的log4j规则,需要放在portal-log4j-ext.xml文件中。Liferay官方有一篇WIKI做了详细说明http://www.liferay.com/zh/community/wiki/-/wiki/Main/How+to+configure+the+logs+in+Liferay
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值