java分割日志

项目中日志文件过大,导致无法查看里面的日志信息;需要将日志分割成多个文件进行查看;

public static void main(String[] args) {
        try {
            FileReader read = new FileReader("E:app/s/tomcat7.0.82-stdout.2020-03-31.log");
//            FileReader read = new FileReader("E:app/s/tomcat.log");
            BufferedReader br = new BufferedReader(read);
            String row;
            int rownum = 1;
            int fileNo = 1;
            createFile("E:app/finishlog/text"+fileNo +".log");
//            FileWriter fw = new FileWriter("E:app/finishlog/text"+fileNo +".log",true);
            BufferedWriter fw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream ("E:app/finishlog/text"+fileNo +".log",true),"UTF-8"));
//            FileWriter writer = new FileWriter(filePath,true);
            while ((row = br.readLine()) != null) {
                rownum ++;
                fw.append(row + "\r\n");
                if((rownum / 64183) > (fileNo - 1)){//64183为每个文件的行数
                    fw.close();
                    fileNo ++ ;
                    createFile("E:app/finishlog/text"+fileNo +".log");
//                    fw = new FileWriter("E:app/finishlog/text"+fileNo +".log",true);
                    fw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream ("E:app/finishlog/text"+fileNo +".log",true),"UTF-8"));
                }
            }
            fw.close();
            System.out.println("rownum="+rownum+";fileNo="+fileNo);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static void createFile(String str){
        File file = new File(str);
        if(!file.exists()){
            //先得到文件的上级目录,并创建上级目录,在创建文件
            file.getParentFile().mkdir();
            try {
                //创建文件
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

你可能感兴趣的:(java分割日志)