home *** CD-ROM | disk | FTP | other *** search
/ ftp.f-secure.com / 2014.06.ftp.f-secure.com.tar / ftp.f-secure.com / support / hotfix / fsis / IS-SpamControl.fsfix / iufssc / lib / FS / Logger.pm < prev    next >
Text File  |  2006-11-29  |  821b  |  46 lines

  1. # Copyright (C) 2006 F-Secure Corporation
  2. #
  3. # $Revision: ? $
  4.  
  5. package FS::Logger;
  6.  
  7. use strict;
  8. use warnings;
  9.  
  10. use vars qw(@ISA @EXPORT @EXPORT_OK);
  11.  
  12. require Exporter;
  13.  
  14. @ISA = qw(Exporter);
  15. @EXPORT = qw(debug info warning error);
  16.  
  17. my $logger = undef;
  18.  
  19. sub set_logger {
  20.     my ($_logger) = @_;
  21.     $logger = $_logger;    
  22. }
  23.  
  24. sub debug   { log_message("dbg",   @_); }
  25. sub info    { log_message("info",  @_); }
  26. sub warning { log_message("warn",  @_); }
  27. sub error   { log_message("error", @_); }
  28.  
  29. sub get_facility {
  30.     my $pkg = caller(2);
  31.     my $facility = eval "\$${pkg}::FS_Logger_facility" || "unknown";
  32.     return $facility;
  33. }
  34.  
  35. sub log_message {
  36.     return unless $logger;
  37.  
  38.     my $facility = get_facility();
  39.     my $level = shift;
  40.     my $msg = shift;
  41.     &$logger($level, "$facility: $msg", @_);
  42. }
  43.  
  44. 1;
  45.