import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
* Main.java
*
* @author outofmemory.cn
*/
public class Main {
/**
*将System.out重定向到文件
*
*/
public void redirectSystemOut() {
try {
System.setOut(new PrintStream(new FileOutputStream("system_out.txt")));
//System.setOut(newPrintStream(newLoggerStream(Logger.getLogger("out"),Level.INFO, System.out)));
} catch (FileNotFoundException ex) {
ex.printStackTrace();
return;
}
System.out.println("This won't get displayed on the console, but sent to the file system_out.txt");
}
/**
* 启动程序
*
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main().redirectSystemOut();
}
}
publicclassLoggerStreamextendsOutputStream {
privatefinalLoggerlogger;
privatefinalLevellogLevel;
privatefinalOutputStreamoutputStream;
publicLoggerStream(Logger logger, Level logLevel, OutputStream outputStream) {
super();
this.logger= logger;
this.logLevel= logLevel;
this.outputStream= outputStream;
}
@Override
publicvoidwrite(byte[] b)throwsIOException {
outputStream.write(b);
String string = newString(b);
if(!string.trim().isEmpty())
logger.log(logLevel, string);
}
@Override
publicvoidwrite(byte[] b,intoff,intlen)throwsIOException {
outputStream.write(b, off, len);
String string = newString(b, off, len);
if(!string.trim().isEmpty())
logger.log(logLevel, string);
}
@Override
publicvoidwrite(intb)throwsIOException {
outputStream.write(b);
String string = String.valueOf((char) b);
if(!string.trim().isEmpty())
logger.log(logLevel, string);
}
}