If you send your logging to syslog instead, I believe it will automatically collapse these sorts of things for you.
Then you configure syslog to write out the asterisk messages to a dedicated file, and configure it to also do the log rotation and compression. On Tue, Jan 13, 2009 at 4:56 PM, Jim Van Meggelen <[email protected]> wrote: > That, Sir, is a thing of beauty! > > Thanks hugely! > > Jim > > > McQuiggan, Mark - Broadridge (Toronto) wrote: >> >> Jim: >> >> >> My two cents... >> >> >> The quick and dirty method on one line, using sed is: >> >> >> sed -e "/file.c: Unexpected control subclass '-1'/d" logfile > >> logfile.tmp; mv logfile.tmp logfile >> >> >> This will delete all lines containing the text. >> >> >> Since I don't know how this logfile works, you should stop the logging >> process before executing this line, and start it after. >> >> >> I would use awk for your ideal method. This is a sample (called >> strip.awk): >> >> >> BEGIN { n=0 } >> >> / file.c: Unexpected control subclass '-1'/ { ++n } >> >> !/ file.c: Unexpected control subclass '-1'/ { if (n>0) { print "file.c: >> Unexpected control subclass '-1' appears ",n,"times.";n=0 } >> >> print $0 } >> >> END {if (n>0) print "file.c: Unexpected control subclass '-1' appears >> ",n,"times." } >> >> >> Invoke it as: >> >> awk -f strip.awk logfile > logfile.tmp; mv logfile.tmp logfile >> >> >> again, stopping the logging first. >> >> >> There are probably lots of ways to do this, and you may get differing >> opinions, but these seem to work. >> >> >> M. >> >> >> -----Original Message----- >> >> From: Jim Van Meggelen [mailto:[email protected]] >> Sent: Friday, January 09, 2009 5:20 PM >> >> To: Asterisk Users Group >> >> Subject: [on-asterisk] Keeping the messages file clean >> >> >> This is perhaps more a linux question than an asterisk question, but in >> my defense I don't know too many linux programs that will happily flood >> the messages file the way asterisk does. >> >> >> I have a minor error on a system that doesn't cause any problems, but >> when it happens it will write about a dozen messages per second to the >> log file. The error looks like this: >> >> >> Jan 9 12:04:37 WARNING[19760] file.c: Unexpected control subclass '-1' >> >> >> What I want to be able to do is run a cron job that'll look for the >> error message, and erase it from the log file (ideally I guess instead >> of erasing it, it would re-write it as one line, with the message >> "(occurred x times)" following, but that's quite a bit more fussy). >> Everything up to the 'file.c' part is variable, so I guess I'd want to >> search for lines containing "file.c: Unexpected control subclass '-1'", >> and put them somewhere else (or just get rid of them). >> >> >> I figure this is very likely a one-liner for somebody who knows sed and >> regex well-enough, and before I started searching I figured I'd ask if >> anyone had a util that might be suitable. Seems to be something that's >> common enough that somebody might have a quick solutino. >> >> >> Thanks in advance for any advice on this one. >> >> >> Jim >> >> >> > > > -- > > -- > Jim Van Meggelen > [email protected] > http://www.oreillynet.com/pub/au/2177 > > "A child is the ultimate startup, and I have three. This makes me rich." > Guy Kawasaki > -- > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- | Network: http://www.linkedin.com/in/spditner | http://facebook.com/people/Simon-P-Ditner/776370031 | | It ain't what you don't know that gets you into trouble. It's what | you know for sure that just ain't so. -- Mark Twain --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
