io-logger日志工具-标准字节输出流(重要)
Logger:
记录日志的工具;
该工具会自动创建日志文档;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.text.SimpleDateFormat; import java.util.Date; /* 日志工具 */ public class Logger { /* 记录日志的方法。 */ public static void log(String msg) { try { // 指向一个日志文件 PrintStream out = new PrintStream(new FileOutputStream("log.txt", true)); // 改变输出方向 System.setOut(out); // 日期当前时间 Date nowTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); String strTime = sdf.format(nowTime); System.out.println(strTime + ": " + msg); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
日志工具测试:
public class LogTest { public static void main(String[] args) { //测试工具类是否好用 Logger.log("调用了System类的gc()方法,建议启动垃圾回收"); Logger.log("调用了UserService的doSome()方法"); Logger.log("用户尝试进行登录,验证失败"); Logger.log("我非常喜欢这个记录日志的工具哦!"); } }
PrintStream 标准字节输出流
1、默认输出到控制台
2、自动关闭资源
import java.io.FileOutputStream; import java.io.PrintStream; /* java.io.PrintStream:标准的字节输出流。默认输出到控制台。 */ public class PrintStreamTest { public static void main(String[] args) throws Exception{ // 联合起来写 System.out.println("hello world!"); // 分开写 PrintStream ps = System.out; ps.println("hello zhangsan"); ps.println("hello lisi"); ps.println("hello wangwu"); // 标准输出流不需要手动close()关闭。 // 可以改变标准输出流的输出方向吗? 可以 /* // System类使用过的方法和属性。 System.gc(); System.currentTimeMillis(); PrintStream ps2 = System.out; System.exit(0); System.arraycopy(....); */ // 标准输出流不再指向控制台,指向“log”文件。 PrintStream printStream = new PrintStream(new FileOutputStream("log")); // 修改输出方向,将输出方向修改到"log"文件。 System.setOut(printStream); // 再输出 System.out.println("hello world"); System.out.println("hello kitty"); System.out.println("hello zhangsan"); } }