如下代码段:    public ISession login(String username, String password){
        try {
            ...
            SessionFactory instance = SessionFactory.getInstance("http://localhost:7001/test");
            logger.info("111");
            //"111" 能够被打印出来
            session = instance.createSession(params); //远程调用服务端API
            logger.info("222");
            //但是"222"却不能被打印出来
             .......
            //程序正常执行完毕,没有任何异常
        } catch (APIException e) {
            e.printStackTrace();
        }
        return session;
    }如果去掉"session = instance.createSession(params);",“222”就能打印出来了
看起来好像是“instance.createSession(params)”里做了些什么屏蔽了log4j,但是我甚至在这行代码 后重新构造logger还是不能打印出任何东西

解决方案 »

  1.   

    简单的:你在logger.info("222");的位置用一个System.out.println("222")来替代一下,看看能否打印出来,如果不能则说明session = instance.createSession(params);这一行有问题,要么是它还没有执行完毕,所以不会继续执行logger.info("222");要么是它抛出了异常直接跳到catch部分了,你试试看。
      

  2.   

    应该是session = instance.createSession(params); //远程调用服务端API
    错误了. 跳倒cath去了.所以没打印下面的
      

  3.   

    public ISession login(String username, String password){
            try {
                ...
                SessionFactory instance = SessionFactory.getInstance("http://localhost:7001/test");
                logger.info("111");
                //"111" 能够被打印出来
                session = instance.createSession(params); //远程调用服务端API
                logger.info("222");
                //但是"222"却不能被打印出来
                System.out.println("333");
                //"333" 能够打印出来
                 .......
                //程序正常执行完毕,没有任何异常
            } catch (APIException e) {
                e.printStackTrace();
            }
            return session;
        }