a PHP class that can be used to parse the apache access.log file. The data can then be displayed in a custom manner that is easier to read or that only includes the data you really care about. You could also insert the data into a database so you could then sort or search it.
USAGE:
include("class.access_log_parser.php"); //include the class file $apache_log_parser = new apache_log_parser(); // Create an apache log parser if ($apache_log_parser->open_log_file('/var/log/apache2/access.log')){ // Make sure it opens the log file while ($line = $apache_log_parser->get_line()){ // while it can get a line $loopcount++; $parsed_line = $apache_log_parser->format_line($line); // format the line $ip = mysql_real_escape_string($parsed_line['ip']); $identity = $parsed_line['identity']; $log_user = $parsed_line['user']; $log_date = $parsed_line['date']; $log_time = $parsed_line['time']; $timezone = $parsed_line['timezone']; $method = mysql_real_escape_string($parsed_line['method']); $path = mysql_real_escape_string($parsed_line['path']); $protocol = mysql_real_escape_string($parsed_line['protocol']); $status = mysql_real_escape_string($parsed_line['status']); $log_bytes = mysql_real_escape_string($parsed_line['bytes']); $referer = mysql_real_escape_string($parsed_line['referer']); $agent = mysql_real_escape_string($parsed_line['agent']); $clean_line = mysql_real_escape_string($line); //do stuff with the data here echo "
$loopcount: $ip $log_date $log_time $method $path $protocol $status"; } } $apache_log_parser->close_log_file(); // close the log file //$apache_log_parser->clear_log_file('/var/log/apache2/access.log'); // empty the file (optional)