我正在开发一个不会向控制台输出任何内容的 Java EE Web 应用程序。它使用 log4j,将 log4j.properties 文件设置为输出到 stdout。但是,它不起作用,控制台中没有出现日志记录。事实证明,即使 System.out 也没有出现在控制台中。什么可能导致这种情况?
我正在运行 MyEclipse 10.1、log4j-1.2.11、tomcat 5.5.35、java 1.6.0_31。
根据请求,这是我的 .properties 文件:
### direct log messages to stdout ###
# Configure Root Logger
log4j.rootLogger = DEBUG, stdout
log4j.logger.org.hibernate = DEBUG, stdout
#log4j.logger.org.springframework = ERROR, stdout
# Configure stdout Appender
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =%d [%t] %-5p %c - %m%n
和日志处理程序:
public class LogHandler {
private static Logger sLog = Logger.getLogger(LogHandler.class);
public LogHandler(){
}
public void info_toLOG(String msg00) {
sLog.info("\n" + msg00 + "\n");
}
public void error_toLOG(Exception e) {
sLog.error("\n" + e.getClass() + "\n"
+ e.getCause() + "\n"
+ e.getMessage() + "\n"
+ e.getLocalizedMessage() + "\n"
+ e.getStackTrace().toString() + "\n");
}
public void warning_toLOG(String msg00) {
sLog.warn("\n" + msg00 + "\n");
}
}
我使用 MyEclipse 来启动和停止。只需指向我的tomcat安装目录。MyEclipse 添加了以下 VM 参数:
-Dcatalina.home="<tomcat dir>"
-Dcatalina.base="<tomcat dir> "
-Djava.endorsed.dirs="<tomcat dir>/common/endorsed"
-Djava.io.tmpdir="<tomcat dir>/temp"
-Djava.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:"<tomcat dir>/bin"
-Dsun.io.useCanonCaches=false
-Xmx1024M
编辑:感谢那些试图提供帮助的人。我应该在原始问题中说明我正在运行 Mac OS X 10.7.3。Utilities -> Java Preferences -> Advanced -> Java Console 下有一个设置,一旦设置为 Show Console 就更正了该问题。