diff options
Diffstat (limited to 'imapsync')
-rwxr-xr-x | imapsync | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -27,7 +27,6 @@ use Getopt::Long qw/:config posix_default no_ignore_case gnu_compat bundling auto_version/; use DBI (); use List::Util 'first'; -use POSIX 'strftime'; use lib 'lib'; use Net::IMAP::Sync qw/read_config compact_set $IMAP_text $IMAP_cond/; @@ -92,10 +91,15 @@ my ($DBFILE, $LOCKFILE, $LOGGER_FD); $LOCKFILE = $DBFILE =~ s/([^\/]+)\z/.$1.lck/r; if (defined $CONF->{_} and defined $CONF->{_}->{logfile}) { + require 'POSIX.pm'; + require 'Time/HiRes.pm'; open $LOGGER_FD, '>>', $CONF->{_}->{logfile} or die "Can't open $CONF->{_}->{logfile}: $!\n"; $LOGGER_FD->autoflush(1); } + elsif ($CONFIG{debug}) { + $LOGGER_FD = \*STDERR; + } } my $DBH; @@ -196,14 +200,18 @@ $DBH->do('PRAGMA foreign_keys = ON'); sub msg($@) { my $name = shift; return unless @_; - logger($name, @_) if defined $LOGGER_FD and $LOGGER_FD ne \*STDERR; + logger($name, @_) if defined $LOGGER_FD and $LOGGER_FD->fileno != fileno STDERR; my $prefix = defined $name ? "$name: " : ''; print STDERR $prefix, @_, "\n"; } sub logger($@) { my $name = shift; return unless @_ and defined $LOGGER_FD; - my $prefix = strftime "%b %e %H:%M:%S ", localtime; + my $prefix = ''; + if ($LOGGER_FD->fileno != fileno STDERR) { + my ($s, $us) = Time::HiRes::gettimeofday(); + $prefix = POSIX::strftime("%b %e %H:%M:%S", localtime($s)).".$us "; + } $prefix .= "$name: " if defined $name; $LOGGER_FD->say($prefix, @_); } |