1
2
3
4
5
6
7
8
9
10
11
12
13 import java.io.BufferedReader;
14 import java.io.File;
15 import java.io.FileReader;
16 import java.io.FileWriter;
17
18 /***
19 * Utility for splitting HEAD from GET/POST/PUT/DELETE requests in a standard webserver log file
20 *
21 * @author Ole.Matzura
22 */
23
24 public class HEADRequestRemover
25 {
26 public static void main(String[] args) throws Exception
27 {
28 File in = new File( args[0] );
29 File out = new File( args[1] );
30 File headOut = new File( args[2] );
31
32 BufferedReader reader = new BufferedReader( new FileReader( in ));
33 FileWriter writer = new FileWriter( out );
34 FileWriter headWriter = new FileWriter( headOut );
35
36 String ln = reader.readLine();
37 int lnCnt = 0;
38 int headCnt = 0;
39
40 while( ln != null )
41 {
42 lnCnt++;
43
44 if( ln.indexOf( "] \"HEAD ") == -1 )
45 {
46 writer.write( ln );
47 writer.write( "\r\n" );
48 }
49 else
50 {
51 headWriter.write( ln );
52 headWriter.write( "\r\n" );
53 headCnt++;
54 }
55
56 ln = reader.readLine();
57 }
58
59 reader.close();
60 writer.close();
61 headWriter.close();
62
63 System.out.println( "Processed file contained " + lnCnt + " lines, extracted " + headCnt + " HEAD requests" );
64 }
65
66 }