aboutsummaryrefslogtreecommitdiff
path: root/lib/TgLib/Logger.pm
blob: a504ec60fd45955c382553508f34c574a1089f86 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package TgLib::Logger;

use POSIX qw(strftime);
use strict;
use warnings;

use parent qw<Exporter>;
our @EXPORT = qw<new debug info warn>;

my %level = (warn => 0, info => 1, debug => 2);

sub log_level {
    my ($self, $msg, $level) = @_;
    my $date = strftime "%F %X", localtime;
    print STDERR "[$level] $date: $msg" if $level{$level} <= $self->{'level'};
}

################################################################################
# Public

sub new {
    my ($class, $verbose) = @_;
    return bless { level => $verbose }, $class;
}

sub debug { log_level(@_, 'debug'); }
sub info { log_level(@_, 'info'); }
sub warn { log_level(@_, 'warn'); }

1;