Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've got a PHP application that is generating large amounts of warnings and notices in the log file..

I'm fixing these one at a time.

I would like to be able to fix the most frequently occurring first in order to maximize the amount of effect my changes have on the size of the log file.

How can I use grep/sed/regex etc.find out which notices are most frequent?

I can't compare the whole line since the time stamp is at the beginning, but perhaps a listing/grouping/sorting of "on line ..."?

alt text

share|improve this question
add comment

2 Answers

up vote 7 down vote accepted

How about this?

grep 'on line' /var/log/httpd/error_log | cut -d' ' -f6- | sort | uniq -c | sort -nr

I.e.

  1. Get the right lines from the logfile
  2. Chop the date off the front
  3. Sort them
  4. Aggregate and count the duplicates
  5. Sort by number of duplicates
share|improve this answer
    
exactly what I was looking for thanks –  Edward Tanguay Aug 10 '09 at 8:35
add comment

I think this is more concise, so you really could avoid 'cut'.

  grep -o 'on line [[:digit:]]*' /var/log/nginx/error.log | sort | uniq -c | sort -nr
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.