Allow online logging to be disabled.

This commit is contained in:
Daniel Nichter
2013-06-11 10:36:42 -07:00
parent 116adafbef
commit b40db4ac7b
2 changed files with 28 additions and 8 deletions

View File

@@ -4855,6 +4855,13 @@ has 'data_ts' => (
);
has 'online_logging' => (
is => 'ro',
isa => 'Bool',
required => 0,
default => sub { return 1 },
);
has 'online_logging_enabled' => (
is => 'rw',
isa => 'Bool',
required => 0,
@@ -4906,13 +4913,15 @@ sub start_online_logging {
my $log_link = $args{log_link};
my $read_timeout = $args{read_timeout} || 3;
return unless $self->online_logging;
my $pid = open(my $pipe_write, "|-");
if ($pid) {
select $pipe_write;
$OUTPUT_AUTOFLUSH = 1;
$self->_pipe_write($pipe_write);
$self->online_logging(1);
$self->online_logging_enabled(1);
}
else {
my @log_entries;
@@ -5044,16 +5053,17 @@ sub _log {
my $n_lines = 1;
$n_lines++ while $msg =~ m/\n/g;
if ( $self->online_logging ) {
if ( $self->online_logging_enabled ) {
while ( defined(my $log_entry = shift @{$self->_buffer}) ) {
$self->_queue_log_entry(@$log_entry);
}
$self->_queue_log_entry($ts, $level_number, $n_lines, $msg);
}
else {
push @{$self->_buffer}, [$ts, $level_number, $n_lines, $msg];
if ( $self->online_logging ) {
push @{$self->_buffer}, [$ts, $level_number, $n_lines, $msg];
}
my $ts = ts(time, 0); # 0=local time
if ( $level_number >= 3 ) { # warning
print STDERR "$ts $level $msg\n";
}