]> git.g-eek.se Git - interimap.git/commitdiff
Log high precision timestamps in the logfile.
authorGuilhem Moulin <guilhem@fripost.org>
Fri, 31 Jul 2015 20:41:24 +0000 (22:41 +0200)
committerGuilhem Moulin <guilhem@fripost.org>
Fri, 31 Jul 2015 20:43:15 +0000 (22:43 +0200)
Also, don't try to import POSIX or Time::HiRes unless the logfile is
configured.

imapsync
lib/Net/IMAP/Sync.pm

index 30982af9ae54d5c2c10fdd3c2d90950c0578b82e..a00708982ac92c25980ccb917a96d70e189fd6eb 100755 (executable)
--- a/imapsync
+++ b/imapsync
@@ -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,6 +91,8 @@ 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);
@@ -208,7 +209,8 @@ sub logger($@) {
     return unless @_ and defined $LOGGER_FD;
     my $prefix = '';
     if ($LOGGER_FD->fileno != fileno STDERR) {
-        $prefix = strftime "%b %e %H:%M:%S ", localtime;
+        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, @_);
index b44f0a6978b5f5c3638dbcdfa550bf94b9603449..4a9d431f35b43933a867c65782db70181fbcfdde 100644 (file)
@@ -23,7 +23,6 @@ use strict;
 use Config::Tiny ();
 use IO::Select ();
 use List::Util 'first';
-use POSIX 'strftime';
 use Socket 'SO_KEEPALIVE';
 
 use Exporter 'import';
@@ -288,6 +287,11 @@ sub new($%) {
     # are considered.
     $self->{_MODIFIED} = {};
 
+    if (defined $self->{'logger-fd'} and $self->{'logger-fd'}->fileno != fileno STDERR) {
+        require 'POSIX.pm';
+        require 'Time/HiRes.pm';
+    }
+
     # wait for the greeting
     my $x = $self->_getline();
     $x =~ s/\A\* (OK|PREAUTH) // or $self->panic($x);
@@ -402,7 +406,8 @@ sub logger($@) {
     return unless @_ and defined $self->{'logger-fd'};
     my $prefix = '';
     if ($self->{'logger-fd'}->fileno != fileno STDERR) {
-        $prefix = strftime "%b %e %H:%M:%S ", localtime;
+        my ($s, $us) = Time::HiRes::gettimeofday();
+        $prefix = POSIX::strftime("%b %e %H:%M:%S", localtime($s)).".$us ";
     }
     $prefix .= defined "$self->{name}" ? $self->{name} : '';
     $prefix .= "($self->{_SELECTED})" if $self->{_STATE} eq 'SELECTED';