package inc::Installer::Logger; use strict; use constant { 'FATAL' => 0, 'WARNING' => 1, 'INFO' => 2, 'DEBUG' => 3, }; our $LogLevel = 1; sub loglevel { my $self = shift; $LogLevel = shift if @_; return $LogLevel; } sub debug { my ( $self, @msg ) = @_; my ( $package, $filename, $line ) = caller; print "[DEBUG: $package, $filename, $line] @msg\n" if $LogLevel >= DEBUG; } sub info { my ( $self, @msg ) = @_; print "@msg\n" if $LogLevel >= INFO; } sub warning { my ( $self, @msg ) = @_; print "Warning: @msg\n" if $LogLevel >= WARNING; } sub fatal { my ( $self, @msg ) = @_; my ( $package, $filename, $line ) = caller; print "Error: @msg, at $package ($filename), line $line\n" if $LogLevel >= FATAL; exit 255; } 1;