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输出,可以把直接去掉它。
Liferay默认使用JDK log, 如果跑在tomcat下而不配置log4j的话,就会与Tomcat使用相同的logging配置,输出到相同的地方,一般是catalina.out.
Liferay配置log4j的方法如下,先看实现:
可见需要配置自己的log4j规则,需要放在portal-log4j-ext.xml文件中。Liferay官方有一篇WIKI做了详细说明http://www.liferay.com/zh/community/wiki/-/wiki/Main/How+to+configure+the+logs+in+Liferay
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.ConsoleHandlerLiferay默认使用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
本文介绍如何配置Tomcat使用JDK的log包进行日志记录,并详细解释了如何通过修改catalina.sh及logging.properties来指定日志输出方式。此外,还介绍了Liferay如何默认使用JDK的日志系统,并提供了配置Liferay使用log4j的方法。
110

被折叠的 条评论
为什么被折叠?



