HADaemon-Control

 view release on metacpan or  search on metacpan

lib/HADaemon/Control.pm  view on Meta::CPAN

    }
}

sub _log {
    my ($self, $level, $message) = @_;

    # some commands, such as help|foregournd, don't need loggin
    # so do lazy initialization
    if (not exists $self->{log_fh}) {
        open(my $fh, '>>', $self->log_file) or die "failed to open logfile '" . $self->log_file . "': $!\n";
        chown(($self->uid // -1), ($self->gid // -1), $fh) if $self->uid || $self->gid;
        $self->{log_fh} = $fh;
    }

    if ($self->{log_fh} && defined fileno($self->{log_fh})) {
        my $now = Time::HiRes::time();
        my ($sec, $ms) = split(/[.]/, $now);
        my $date = POSIX::strftime("%Y-%m-%d %H:%M:%S", localtime($now)) . sprintf('.%05d', $ms // 0);
        printf { $self->{log_fh} } "[%s][%d][%s] %s\n", $date, $$, $level, $message;
        $self->{log_fh}->flush();
    }



( run in 1.386 second using v1.01-cache-2.11-cpan-71847e10f99 )