######################################################## ## Copyright (c) 2008 Kirk Bauer ## Covered under the included MIT/X-Consortium License: ## http://www.opensource.org/licenses/mit-license.php ## All modifications and contributions by other persons to ## this script are assumed to have been donated to the ## Logwatch project and thus assume the above copyright ## and licensing terms. If you want to make contributions ## under your own copyright or a different license this ## must be explicitly stated in the contribution an the ## Logwatch project reserves the right to not accept such ## contributions. If you have made significant ## contributions to this script and want to claim ## copyright please contact logwatch-devel@lists.sourceforge.net. ######################################################### # Removes the beginning of each line of a standard /var/log/messages-style # logfile or a pattern passed as first argument to this script. my $RemovePattern = $ARGV[0] || '^... .. ..:..:.. [^ ]* [^\[:]*(?:\[\d*\])?: (?:\[\d+\.\d+\] )?'; while (defined($ThisLine = )) { # remove standard syslog-style header or configurable pattern $ThisLine =~ s/$RemovePattern//; #First line is Solaris ID tag style -mgt $ThisLine =~ s/^\[ID \d+( \w+\.\w+)?] //; # the following is for those logs that use the service name, but do not # append the ':' right after (for example, syslogd restart). Presumably # OnlyService is called before RemoveHeaders, so this should only be done # on the required services. $ThisLine =~ s/^... .. ..:..:.. [^ ]* //; # remove date-prefix, eg Tue Dec 27 21:36:48 2011 : , from each line $ThisLine =~ s/^\w{3} \w{3} .. \d{2}:\d{2}:\d{2} \d{4}\s?:\s?//; print $ThisLine; } # vi: shiftwidth=3 syntax=perl tabstop=3 et # Local Variables: # mode: perl # perl-indent-level: 3 # indent-tabs-mode: nil # End: