Add service, data_ts, and entry_ts to LogEntry resource. Add corresponding attribs to Logger, as well as queue_wait.

This commit is contained in:
Daniel Nichter
2013-05-28 20:00:59 -07:00
parent 95474b1669
commit 2dbe188d5b
3 changed files with 88 additions and 8 deletions

View File

@@ -1493,6 +1493,24 @@ package Percona::WebAPI::Resource::LogEntry;
use Lmo; use Lmo;
has 'service' => (
is => 'ro',
isa => 'Str',
required => 0,
);
has 'data_ts' => (
is => 'ro',
isa => 'Int',
required => 0,
);
has 'entry_ts' => (
is => 'ro',
isa => 'Str',
required => 1,
);
has 'log_level' => ( has 'log_level' => (
is => 'ro', is => 'ro',
isa => 'Int', isa => 'Int',
@@ -4831,6 +4849,25 @@ has 'exit_status' => (
required => 1, required => 1,
); );
has 'queue_wait' => (
is => 'rw',
isa => 'Int',
required => 0,
default => sub { return 3; },
);
has 'service' => (
is => 'ro',
isa => 'Str',
required => 0,
);
has 'data_ts' => (
is => 'ro',
isa => 'Int',
required => 0,
);
has '_message_queue' => ( has '_message_queue' => (
is => 'rw', is => 'rw',
isa => 'Object', isa => 'Object',
@@ -4871,8 +4908,11 @@ sub enable_online_logging {
{ {
if ( defined $entry->[0] ) { if ( defined $entry->[0] ) {
push @log_entries, Percona::WebAPI::Resource::LogEntry->new( push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
log_level => $entry->[0], entry_ts => $entry->[0],
message => $entry->[1], log_level => $entry->[1],
message => $entry->[2],
($self->service ? (service => $self->service) : ()),
($self->data_ts ? (data_ts => $self->data_ts) : ()),
); );
} }
else { else {
@@ -4894,7 +4934,7 @@ sub enable_online_logging {
} }
} # have log entries } # have log entries
if ( $oktorun ) { if ( $oktorun ) {
sleep ($self->_message_queue ? 3 : 5); sleep $self->queue_wait;
} }
} # QUEUE } # QUEUE
} # threads::async } # threads::async
@@ -4969,7 +5009,7 @@ sub _log {
print "$ts $level $msg\n"; print "$ts $level $msg\n";
} }
if ( $self->online_logging ) { if ( $self->online_logging ) {
my @event :shared = ($level_number, $msg); my @event :shared = ($ts, $level_number, $msg);
$self->_message_queue->enqueue(\@event); $self->_message_queue->enqueue(\@event);
} }
return; return;

View File

@@ -60,6 +60,25 @@ has 'exit_status' => (
required => 1, required => 1,
); );
has 'queue_wait' => (
is => 'rw',
isa => 'Int',
required => 0,
default => sub { return 3; },
);
has 'service' => (
is => 'ro',
isa => 'Str',
required => 0,
);
has 'data_ts' => (
is => 'ro',
isa => 'Int',
required => 0,
);
has '_message_queue' => ( has '_message_queue' => (
is => 'rw', is => 'rw',
isa => 'Object', isa => 'Object',
@@ -101,8 +120,11 @@ sub enable_online_logging {
# $entry = [ level, "message" ] # $entry = [ level, "message" ]
if ( defined $entry->[0] ) { if ( defined $entry->[0] ) {
push @log_entries, Percona::WebAPI::Resource::LogEntry->new( push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
log_level => $entry->[0], entry_ts => $entry->[0],
message => $entry->[1], log_level => $entry->[1],
message => $entry->[2],
($self->service ? (service => $self->service) : ()),
($self->data_ts ? (data_ts => $self->data_ts) : ()),
); );
} }
else { else {
@@ -125,7 +147,7 @@ sub enable_online_logging {
} }
} # have log entries } # have log entries
if ( $oktorun ) { if ( $oktorun ) {
sleep ($self->_message_queue ? 3 : 5); sleep $self->queue_wait;
} }
} # QUEUE } # QUEUE
} # threads::async } # threads::async
@@ -201,7 +223,7 @@ sub _log {
print "$ts $level $msg\n"; print "$ts $level $msg\n";
} }
if ( $self->online_logging ) { if ( $self->online_logging ) {
my @event :shared = ($level_number, $msg); my @event :shared = ($ts, $level_number, $msg);
$self->_message_queue->enqueue(\@event); $self->_message_queue->enqueue(\@event);
} }
return; return;

View File

@@ -22,6 +22,24 @@ package Percona::WebAPI::Resource::LogEntry;
use Lmo; use Lmo;
has 'service' => (
is => 'ro',
isa => 'Str',
required => 0,
);
has 'data_ts' => (
is => 'ro',
isa => 'Int',
required => 0,
);
has 'entry_ts' => (
is => 'ro',
isa => 'Str',
required => 1,
);
has 'log_level' => ( has 'log_level' => (
is => 'ro', is => 'ro',
isa => 'Int', isa => 'Int',