NAME

Parse::Syslog::Line - Parses Syslog Lines into Hashes

VERSION

Version 0.5

SYNOPSIS

I wanted a very simple log parser for network based syslog input. Nothing existed that simply took a line and returned a hash ref all parsed out.

    use Parse::Syslog::Line qw(syslog_parse_line);

    my $href = syslog_parse_line( $msg );
	#
	# $href = {
	#		preamble		=> '13',	
	#		priority		=> 'notice',	
	#		priority_int	=> 5,	
	#		facility		=> 'user',
	#		facility_int	=> 8,
	#		date			=> 'YYYY-MM-DD',
	#		time			=> 'HH::MM:SS',
	#		datetime_str	=> 'YYYY-MM-DD HH:MM:SS',
	#		datetime_obj	=> new DateTime(), # If installed
	#		datetime_raw	=> 'Feb 17 11:12:13'
	#		host_raw		=> 'hostname',  # Hostname as it appeared in the message
	#		host		 	=> 'hostname',  # Hostname without domain
	#		domain			=> 'blah.com',  # if provided
	#		program_raw		=> 'sshd(blah)[pid]',
	#		program_name	=> 'sshd',
	#		program_sub		=> 'pam_unix',
	#		program_pid		=> 20345,
	#		content			=> 'the rest of the message'
	#		message			=> 'program[pid]: the rest of the message',
	#		message_raw		=> 'The message as it was passed',
	# };
    ...

EXPORT

Exported by default: parse_syslog_line( $one_line_of_syslog_message );

Optional Exports: :preamble preamble_priority preamble_facility

  :constants
	%LOG_FACILITY
	%LOG_PRIORITY

FUNCTIONS

parse_syslog_line

Returns a hash reference of syslog message parsed data.

preamble_priority

Takes the Integer portion of the syslog messsage and returns a hash reference as such:

$prioRef = {
	'preamble'	=> 13
	'as_text'	=> 'notice',
	'as_int' 	=> 5,
};

preamble_facility

Takes the Integer portion of the syslog messsage and returns a hash reference as such:

$facRef = {
	'preamble'	=> 13
	'as_text'	=> 'user',
	'as_int' 	=> 8,
};

AUTHOR

Brad Lhotsky, <brad at divisionbyzero.net>

BUGS

Please report any bugs or feature requests to bug-parse-syslog-line at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Parse-Syslog-Line. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Parse::Syslog::Line

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2007 Brad Lhotsky, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.