]>
git.proxmox.com Git - pve-installer.git/blob - Proxmox/Log.pm
7 use POSIX
qw(strftime);
8 use Time
::HiRes
qw(gettimeofday);
10 use base
qw(Exporter);
11 our @EXPORT = qw(log_debug log_error log_info log_notice log_warn);
16 croak
"log fd is already defined, refuse to reinitialize!" if defined($log_fd);
17 $log_file = "/tmp/install.log" if !defined($log_file);
18 $log_fd = IO
::File-
>new(">${log_file}") or croak
"could not open log file - $!\n";
19 log_info
("initialized log");
22 my sub iso_like_date_time
{
23 my ($now_seconds, $now_microseconds) = gettimeofday
;
24 my $now_millis = int($now_microseconds / 1000);
25 return strftime
("%F %H:%M:%S", localtime($now_seconds)) . sprintf(".%03d", $now_millis);
29 my ($level, $message) = @_;
32 if (!defined($log_fd)) {
33 carp
"log FD not initialized, falling back to stderr";
37 my $date_time = iso_like_date_time
();
41 print $log_fd "$date_time $level: $message\n";
44 sub log_cmd
{ _log
('cmd', @_); }
45 sub log_debug
{ _log
('debug', @_); }
46 sub log_error
{ _log
('error', @_); }
47 sub log_info
{ _log
('info', @_); }
48 sub log_warn
{ _log
('warn', @_); }