隐藏System.out.println

在代码中写了大量println语句,不过在服务器上部署时觉得打印语句浪费时间,请问有没有方法解决这个问题?

回复
阅读 3.8k
5 个回答

推荐使用已有的日志类轮子
slf4j
logback
log4j
等等。

或者根据你当前的需求,你定义一个自己的输出工具类

public class Out {
    //DEBUG来控制是否为调试模式
    private static final boolean DEBUG = true;
    public static void println(String str){
        if(DEBUG){
            System.out.println(str);
        }
    }
}

项目里打印的时候使用

Out.println(str);

替换原来的System.out.println(str);

这一就可以做到最简单的sout输出控制了

你不用日志组件的么?记录日志是很有必要的,推荐使用logback组件,相对性能高点,另外,println也不会浪费多少时间,不会构成你的瓶颈

  1. 如果这个代码是你自己的代码,老老实实用log4j日志组件完成替换;

  2. 如果这个代码在工程依赖的jar包中,可以使用asm在ClassLoader加载类的时候进行System.out.println();代码的统一清理。

希望这个代码是你自己的代码,哈哈

System.out.println确实会浪费时间的,研究生时期做算法,用Java实现的算法,有print的时候明显比较慢,不过是毫秒级别的罢了。

建议还是换成日志组件logback, log4j之类的,省心看着还高端大气。

把他们都批量修改了不就好了吗?

推荐问题
宣传栏