Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package logger;
- require Exporter;
- our $VERSION = 1.00;
- our @ISA = qw|Exporter|;
- our @EXPORT = qw|log_black log_red log_green|;
- our @EXPORT_OK = qw||;
- use strict; use DateTime; use TermSize;
- use warnings; use Text::Wrap;
- use v5.10; use Term::ANSIColor;
- use IO::File;
- my $CCL = 9; # color code length, i.e length(colored('A')) - length('A') = 9;
- my $LTZ = DateTime::TimeZone->new(name => 'local');
- my ($cols, $rows) = Term::Size::chars *STDERR{IO};
- $Text::Wrap::columns = $cols;
- my $default_file_name = 'when_and_what_happend.txt';
- my $color_black = 'bright_black';
- my $color_red = 'bright_red';
- my $color_green = 'bright_green';
- if (!-d './log/') { mkdir('log', 0700); }
- my $file;# = IO::File->new(">> ./log/$default_file_name");
- # sub import
- # {
- # my @args = splice @_, 1;
- # my $fn = $args[0] || $default_file_name;
- # $file = IO::File->new(">> ./log/$fn");
- # goto &Exporter::import;
- # }
- sub import
- {
- my @args = splice @_, 1;
- my $fn = $args[0] || $default_file_name;
- $file = IO::File->new(">> ./log/$fn");
- say $fn;
- say __PACKAGE__;
- __PACKAGE__->export_to_level(1, @EXPORT);
- }
- sub prefix
- {
- my $dt = DateTime->now(time_zone => $LTZ);
- my $prefix = ""; my $pcp = 0; # prefix colored parts
- $prefix .= colored(["bright_red"], '['); $pcp++;
- $prefix .= colored(["bright_blue"], $dt->year); $pcp++;
- $prefix .= colored(["bright_red"], '.'); $pcp++;
- $prefix .= colored(["bright_blue"], sprintf("%02d", $dt->month)); $pcp++;
- $prefix .= colored(["bright_red"], '.'); $pcp++;
- $prefix .= colored(["bright_blue"], sprintf("%02d", $dt->day)); $pcp++;
- $prefix .= colored(["cyan"], ' | '); $pcp++;
- $prefix .= colored(["bright_blue"], sprintf("%02d", $dt->hour)); $pcp++;
- $prefix .= colored(["bright_red"], ':'); $pcp++;
- $prefix .= colored(["bright_blue"], sprintf("%02d", $dt->minute)); $pcp++;
- $prefix .= colored(["bright_red"], ':'); $pcp++;
- $prefix .= colored(["bright_blue"], sprintf("%02d", $dt->second)); $pcp++;
- $prefix .= colored(["bright_red"], '] '); $pcp++;
- return ($prefix, $pcp);
- }
- sub log_black
- {
- my ($prefix, $pcp) = prefix();
- my @line = @_;
- print $file $prefix;
- @line = map { colored(["$color_black"], $_); } @line;
- say $file wrap("\0" x (length($prefix) - $CCL * $pcp), " " x (length($prefix) - $CCL * $pcp), @line);
- }
- sub log_red
- {
- my ($prefix, $pcp) = prefix();
- my @line = @_;
- print $file $prefix;
- @line = map { colored(["$color_red"], $_); } @line;
- say $file wrap("\0" x (length($prefix) - $CCL * $pcp), " " x (length($prefix) - $CCL * $pcp), @line);
- }
- sub log_green
- {
- my ($prefix, $pcp) = prefix();
- my @line = @_;
- print $file $prefix;
- @line = map { colored(["$color_green"], $_); } @line;
- say $file wrap("\0" x (length($prefix) - $CCL * $pcp), " " x (length($prefix) - $CCL * $pcp), @line);
- }
- 1
Add Comment
Please, Sign In to add comment