File Coverage

blib/lib/Device/Modem/Log/Syslog.pm
Criterion Covered Total %
statement 6 27 22.2
branch 0 6 0.0
condition n/a
subroutine 2 6 33.3
pod 0 4 0.0
total 8 43 18.6


line stmt bran cond sub pod time code
1             # Device::Modem::Log::Syslog - Syslog logging plugin for Device::Modem class
2             #
3             # Copyright (C) 2002-2004 Cosimo Streppone, cosimo@cpan.org
4             #
5             # This program is free software; you can redistribute it and/or
6             # modify it under the same terms as Perl itself.
7             #
8             # Additionally, this is ALPHA software, still needs extensive
9             # testing and support for generic AT commads, so use it at your own risk,
10             # and without ANY warranty! Have fun.
11             #
12             # $Id$
13              
14             package Device::Modem::Log::Syslog;
15             our $VERSION = '2.11';
16             $VERSION = eval $VERSION;
17              
18 1     1   970 use strict;
  1         2  
  1         28  
19 1     1   685 use Sys::Syslog ();
  1         12649  
  1         282  
20              
21             sub new {
22 0     0 0   my($class, $package) = @_;
23 0           Sys::Syslog::setlogsock('unix');
24 0           Sys::Syslog::openlog($package, 'cons,pid', 'user');
25 0           my $loglevel = 'info';
26 0           bless \$loglevel, 'Device::Modem::Log::Syslog';
27             }
28              
29             {
30              
31             # Define log levels like syslog service
32             my %levels = ( debug => 7, info => 6, notice => 5, warning => 4, err => 3, crit => 2, alert => 1, emerg => 0 );
33              
34             sub loglevel {
35 0     0 0   my($self, $newlevel) = @_;
36              
37 0 0         if( defined $newlevel ) {
38 0           $newlevel = lc $newlevel;
39 0 0         if( $newlevel eq 'verbose' ) {
40 0           $newlevel = 'info';
41             }
42 0 0         if( ! exists $levels{$newlevel} ) {
43 0           $newlevel = 'notice';
44             }
45 0           $$self = $newlevel;
46              
47             # Set new logmask
48 0           my $logmask = 0xFF; #(1 << ($levels{$newlevel} + 1)) - 1;
49 0           Sys::Syslog::setlogmask( $logmask );
50              
51             } else {
52              
53 0           return $$self;
54              
55             }
56             }
57              
58             sub write($$) {
59 0     0 0   my($self, $level, @msg) = @_;
60 0           Sys::Syslog::syslog( $level, @msg );
61 0           return 1;
62             }
63              
64             }
65              
66             sub close {
67 0     0 0   my $self = shift();
68 0           Sys::Syslog::closelog();
69             }
70              
71              
72             1;
73              
74             __END__