| 71 |  | import java.text.ParseException; | 
                      
                        |  | 74 | {{{ | 
                        |  | 75 | public LogParser(String line) throws ParseException, Exception{ | 
                        |  | 76 | Matcher matcher = p.matcher(line); | 
                        |  | 77 | if(matcher.matches()){ | 
                        |  | 78 | this.ip = matcher.group(1); | 
                        |  | 79 | // IP address of the client requesting the web page. | 
                        |  | 80 | if(isIpAddress(ip)){ | 
                        |  | 81 | SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z",Locale.US); | 
                        |  | 82 | this.timestamp = sdf.parse(matcher.group(4)).getTime(); | 
                        |  | 83 | String[] http = matcher.group(5).split(" "); | 
                        |  | 84 | this.method = http[0]; | 
                        |  | 85 | this.url = http[1]; | 
                        |  | 86 | this.protocol = http[2]; | 
                        |  | 87 | this.code = matcher.group(6); | 
                        |  | 88 | this.byteSize = matcher.group(7); | 
                        |  | 89 | this.referrer = matcher.group(8); | 
                        |  | 90 | this.agent = matcher.group(9); | 
                        |  | 91 | } | 
                        |  | 92 | } | 
                        |  | 93 | } | 
                        |  | 94 | }}} | 
            
                      
                        | 73 |  | import java.text.SimpleDateFormat; | 
                        | 74 |  |  | 
                        | 75 |  | import java.util.Locale; | 
                        | 76 |  |  | 
                        | 77 |  | import java.util.StringTokenizer; | 
                        | 78 |  |  | 
                        | 79 |  | import java.util.regex.Matcher; | 
                        | 80 |  |  | 
                        | 81 |  | import java.util.regex.Pattern; | 
                        | 82 |  |  | 
                        | 83 |  | public class LogParser { | 
                        | 84 |  |  | 
                        | 85 |  | private String ip; | 
                        | 86 |  |  | 
                        | 87 |  | private String protocol; | 
                        | 88 |  |  | 
                        | 89 |  | private String method; | 
                        | 90 |  |  | 
                        | 91 |  | private String url; | 
                        | 92 |  |  | 
                        | 93 |  | private String code; | 
                        | 94 |  |  | 
                        | 95 |  | private String byteSize; | 
                        | 96 |  |  | 
                        | 97 |  | private String referrer; | 
                        | 98 |  |  | 
                        | 99 |  | private String agent; | 
                        | 100 |  |  | 
                        | 101 |  | private long timestamp; | 
                        | 102 |  |  | 
                        | 103 |  | private static Pattern p = Pattern | 
                        | 104 |  |  | 
                        | 105 |  | .compile("([^ ]*) ([^ ]*) ([^ ]*) \\[([^]]*)\\] \"([^\"]*)\"" + | 
                        | 106 |  |  | 
                        | 107 |  | " ([^ ]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\".*"); | 
                        | 108 |  |  | 
                        | 109 |  | public LogParser(String line) throws ParseException, Exception{ | 
                        | 110 |  |  | 
                        | 111 |  | Matcher matcher = p.matcher(line); | 
                        | 112 |  |  | 
                        | 113 |  | if(matcher.matches()){ | 
                        | 114 |  |  | 
                        | 115 |  | this.ip = matcher.group(1); | 
                        | 116 |  |  | 
                        | 117 |  | // IP address of the client requesting the web page. | 
                        | 118 |  |  | 
                        | 119 |  | if(isIpAddress(ip)){ | 
                        | 120 |  |  | 
                        | 121 |  | SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z",Locale.US); | 
                        | 122 |  |  | 
                        | 123 |  | this.timestamp = sdf.parse(matcher.group(4)).getTime(); | 
                        | 124 |  |  | 
                        | 125 |  | String[] http = matcher.group(5).split(" "); | 
                        | 126 |  |  | 
                        | 127 |  | this.method = http[0]; | 
                        | 128 |  |  | 
                        | 129 |  | this.url = http[1]; | 
                        | 130 |  |  | 
                        | 131 |  | this.protocol = http[2]; | 
                        | 132 |  |  | 
                        | 133 |  | this.code = matcher.group(6); | 
                        | 134 |  |  | 
                        | 135 |  | this.byteSize = matcher.group(7); | 
                        | 136 |  |  | 
                        | 137 |  | this.referrer = matcher.group(8); | 
                        | 138 |  |  | 
                        | 139 |  | this.agent = matcher.group(9); | 
                        | 140 |  |  | 
                        | 141 |  | } | 
                        | 142 |  |  | 
                        | 143 |  | } | 
                        | 144 |  |  | 
                        | 145 |  | } | 
                        | 146 |  |  | 
                      
                        |  | 96 | {{{ |