level_names => Object::Remote::Logging::arg_levels(),
);
- #TODO check on speed of string compare against a hash with a single key
router()->connect(sub {
my $controller = $_[1]->{controller};
-# warn $controller;
- return unless $controller_should_log{$controller};
+ return unless $controller_should_log{'*'} || $controller_should_log{$controller};
#skip things from remote hosts because they log to STDERR
#when OBJECT_REMOTE_LOG_LEVEL is in effect
return if $_[1]->{remote}->{connection_id};
my ($self, %controller_info) = @_;
router()->_remote_metadata({ connection_id => $controller_info{connection_id} });
- router()->_forward_destination($controller_info{router});
+ router()->_forward_destination($controller_info{router}) if $ENV{OBJECT_REMOTE_LOG_FORWARDING};
}
1;
r => $self->_render_remote($metadata->{object_remote}),
s => $self->_render_log(@$content), l => $level,
c => $metadata->{controller}, p => $metadata->{package}, m => $method,
- f => $metadata->{filename}, i => $metadata->{line},
+ f => $metadata->{filename}, i => $metadata->{line},
+ h => $metadata->{hostname}, P => $metadata->{pid},
};
}
my ($self, $name, $data) = @_;
my $val = $data->{$name};
return $val if defined $val;
- return '';
+ return '(undefined)';
}
sub _render_time {
my $var_table = $self->_create_format_lookup($level, $metadata, [@content]);
my $template = $self->format;
- $template =~ s/%([\w])/$self->_get_format_var_value($1, $var_table)/ge;
+ $template =~ s/%([\w%])/$self->_get_format_var_value($1, $var_table)/ge;
chomp($template);
$template =~ s/\n/\n /g;
my $defaults = Object::Remote::Connector::Local->new;
my $normal = $defaults->final_perl_command;
-my $ulimit = Object::Remote::Connector::Local->new(ulimit => 536)->final_perl_command;
+my $ulimit = Object::Remote::Connector::Local->new(ulimit => "-v 536")->final_perl_command;
my $nice = Object::Remote::Connector::Local->new(nice => 834)->final_perl_command;
-my $both = Object::Remote::Connector::Local->new(nice => 612, ulimit => 913)->final_perl_command;
-my $ssh = Object::Remote::Connector::SSH->new(nice => 494, ulimit => 782, ssh_to => 'testhost')->final_perl_command;
+my $both = Object::Remote::Connector::Local->new(nice => 612, ulimit => "-v 913")->final_perl_command;
+my $ssh = Object::Remote::Connector::SSH->new(nice => 494, ulimit => "-v 782", ssh_to => 'testhost')->final_perl_command;
-is($defaults->timeout->{after}, 10, 'Default connection timeout value is correct');
+is($defaults->timeout, 10, 'Default connection timeout value is correct');
is($defaults->watchdog_timeout, undef, 'Watchdog is not enabled by default');
is($defaults->nice, undef, 'Nice is not enabled by default');
is($defaults->ulimit, undef, 'Ulimit is not enabled by default');
is($defaults->stderr, undef, 'Child process STDERR is clone of parent process STDERR by default');
-is_deeply($normal, ['sh', '-c', 'perl -'], 'Default Perl interpreter arguments correct');
-is_deeply($ulimit, ['sh', '-c', 'ulimit -v 536; perl -'], 'Arguments for ulimit are correct');
-is_deeply($nice, ['sh', '-c', 'nice -n 834 perl -'], 'Arguments for nice are correct');
-is_deeply($both, ['sh', '-c', 'ulimit -v 913; nice -n 612 perl -'], 'Arguments for nice and ulimit are correct');
-is_deeply($ssh, [qw(ssh -A testhost), "sh -c 'ulimit -v 782; nice -n 494 perl -'"], "Arguments using ssh are correct");
+is_deeply($normal, ['bash', '-c', 'perl -'], 'Default Perl interpreter arguments correct');
+is_deeply($ulimit, ['bash', '-c', 'ulimit -v 536 || exit 1; perl -'], 'Arguments for ulimit are correct');
+is_deeply($nice, ['bash', '-c', 'nice -n 834 perl -'], 'Arguments for nice are correct');
+is_deeply($both, ['bash', '-c', 'ulimit -v 913 || exit 1; nice -n 612 perl -'], 'Arguments for nice and ulimit are correct');
+is_deeply($ssh, [qw(ssh -A testhost), "bash -c 'ulimit -v 782 || exit 1; nice -n 494 perl -'"], "Arguments using ssh are correct");
done_testing;