1.
但这样做还不够完美,我们希望可以保存到当前项目的相对路径下,同时改一下后缀名(tomcat的日志用的就是*.log),则改成如下:
2.System.setOut();
package com;
import java.io.PrintStream;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.impl.LogFactoryImpl;
/**
* 把在程序中的System.out.print()的信息自动转成日志信息
*/
public class StdoutListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent event) {
}
private void log(Object info) {
LogFactoryImpl.getLog(getClass()).info(info);
}
public void contextInitialized(ServletContextEvent event) {
PrintStream printStream = new PrintStream(System.out) {
public void println(boolean x) {
log(Boolean.valueOf(x));
}
public void println(char x) {
log(Character.valueOf(x));
}
public void println(char[] x) {
log(x == null ? null : new String(x));
}
public void println(double x) {
log(Double.valueOf(x));
}
public void println(float x) {
log(Float.valueOf(x));
}
public void println(int x) {
log(Integer.valueOf(x));
}
public void println(long x) {
log(x);
}
public void println(Object x) {
log(x);
}
public void println(String x) {
log(x);
}
};
System.setOut(printStream);
System.setErr(printStream);
}
}