File Coverage

blib/lib/Log/Fine/Formatter/Syslog.pm
Criterion Covered Total %
statement 36 36 100.0
branch 2 4 50.0
condition n/a
subroutine 11 11 100.0
pod 1 1 100.0
total 50 52 96.1


line stmt bran cond sub pod time code
1              
2             =head1 NAME
3              
4             Log::Fine::Formatter::Syslog - Formatter for Syslog formatting
5              
6             =head1 SYNOPSIS
7              
8             Formats messages in a style similar to syslog(1)
9              
10             use Log::Fine::Formatter::Syslog;
11             use Log::Fine::Handle::Console;
12              
13             # Instantiate a handle
14             my $handle = Log::Fine::Handle::Console->new();
15              
16             # Instantiate a formatter
17             my $formatter = Log::Fine::Formatter::Syslog
18             ->new( name => 'syslog0');
19              
20             # Set the formatter
21             $handle->formatter( formatter => $formatter );
22              
23             # Format a msg
24             my $str = $formatter->format(INFO, "Resistence is futile", 1);
25              
26             =head1 DESCRIPTION
27              
28             The syslog formatter logs messages in a format similar to that
29             produced by syslog(1).
30              
31             []:
32              
33             =cut
34              
35 2     2   1719 use strict;
  2         4  
  2         65  
36 2     2   10 use warnings;
  2         4  
  2         70  
37              
38             package Log::Fine::Formatter::Syslog;
39              
40 2     2   10 use base qw( Log::Fine::Formatter );
  2         3  
  2         142  
41              
42 2     2   11 use File::Basename;
  2         3  
  2         113  
43 2     2   10 use Log::Fine;
  2         4  
  2         44  
44 2     2   11 use Log::Fine::Formatter;
  2         3  
  2         39  
45              
46             #use Log::Fine::Levels;
47 2     2   14 use Log::Fine::Logger;
  2         4  
  2         44  
48 2     2   9 use POSIX qw( strftime );
  2         3  
  2         10  
49 2     2   4474 use Sys::Hostname;
  2         3422  
  2         241  
50              
51             our $VERSION = $Log::Fine::Formatter::VERSION;
52              
53             # Constant: LOG_TIMESTAMP_FORMAT
54             #
55             # strftime(3)-compatible format string
56 2 50       485 use constant LOG_TIMESTAMP_FORMAT => ($^O eq "MSWin32")
57             ? "%b %d %H:%M:%S"
58 2     2   19 : "%b %e %T";
  2         5  
59              
60             =head1 METHODS
61              
62             =head2 format
63              
64             Formats the given message for the given level
65              
66             =head3 Parameters
67              
68             =over
69              
70             =item * level
71              
72             Level at which to log (see L)
73              
74             =item * message
75              
76             Message to log
77              
78             =item * skip
79              
80             Controls caller skip level
81              
82             =back
83              
84             =head3 Returns
85              
86             The formatted text string in the form:
87              
88             []: >
89              
90             =cut
91              
92             sub format
93             {
94              
95 1     1 1 2 my $self = shift;
96 1         2 my $lvl = shift;
97 1         4 my $msg = shift;
98 1 50       5 my $skip =
99             (defined $_[0]) ? shift : Log::Fine::Logger->LOG_SKIP_DEFAULT;
100              
101 1         7 my $host = (split(/\./, hostname))[0];
102              
103             return
104 1         37 sprintf("%s %s %s[%d]: %s\n",
105             $self->_formatTime(), $host, basename($0), $$, $msg);
106              
107             } # format()
108              
109             =head1 BUGS
110              
111             Please report any bugs or feature requests to
112             C, or through the web interface at
113             L.
114             I will be notified, and then you'll automatically be notified of progress on
115             your bug as I make changes.
116              
117             =head1 SUPPORT
118              
119             You can find documentation for this module with the perldoc command.
120              
121             perldoc Log::Fine
122              
123             You can also look for information at:
124              
125             =over 4
126              
127             =item * AnnoCPAN: Annotated CPAN documentation
128              
129             L
130              
131             =item * CPAN Ratings
132              
133             L
134              
135             =item * RT: CPAN's request tracker
136              
137             L
138              
139             =item * Search CPAN
140              
141             L
142              
143             =back
144              
145             =head1 AUTHOR
146              
147             Christopher M. Fuhrman, C<< >>
148              
149             =head1 SEE ALSO
150              
151             L, L
152              
153             =head1 COPYRIGHT & LICENSE
154              
155             Copyright (c) 2008-2010, 2013 Christopher M. Fuhrman,
156             All rights reserved.
157              
158             This program is free software licensed under the...
159              
160             The BSD License
161              
162             The full text of the license can be found in the
163             LICENSE file included with this module.
164              
165             =cut
166              
167             1; # End of Log::Fine::Formatter::Syslog