protected void setupStreams(ITestResult result, boolean printMethodName) {
        String test_name=result.getTestClass().getName();
        File dir=new File(output_dir + File.separator + test_name);
        if(!dir.exists())
            dir.mkdirs();
        File _tests=new File(dir, TESTS), _stdout=new File(dir, STDOUT), _stderr=new File(dir, STDERR);
        try {
            Class<?> clazz=result.getTestClass().getRealClass();
            if(!tests.containsKey(clazz)) {
                DataOutputStream output=new DataOutputStream(new FileOutputStream(_tests,true));
                DataOutputStream tmp=tests.putIfAbsent(clazz, output);
                if(tmp != null) {
                    Util.close(output);
                    output=tmp;
                }
            }
            
            if(stdout.get() == null)
                stdout.set(new PrintStream(new FileOutputStream(_stdout, true)));
            if(stderr.get() == null)
                stderr.set(new PrintStream(new FileOutputStream(_stderr, true)));
            if(printMethodName)
                stdout.get().println("\n\n------------- " + getMethodName(result) + " -----------");
        }
        catch(IOException e) {
            error(e.toString());
        }
    }