diff options
| author | Jonathan Prykop <jonathan@freeside.biz> | 2016-06-17 00:31:09 -0500 |
|---|---|---|
| committer | Mitch Jackson <mitch@freeside.biz> | 2018-10-27 23:20:17 -0400 |
| commit | 03581a2d9d8cc76d3fb88cbc78da3128b137157a (patch) | |
| tree | 15e189b36c617a9655e200eede2a4d076fa52fce /FS/FS | |
| parent | 793113e437c711b726f3b2fefb3091ff93ddd4d7 (diff) | |
RT#39627: System log daily context also includes Cron::bill and Cron::upload results
Diffstat (limited to 'FS/FS')
| -rw-r--r-- | FS/FS/Schema.pm | 1 | ||||
| -rw-r--r-- | FS/FS/log.pm | 8 | ||||
| -rw-r--r-- | FS/FS/log_email.pm | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index ecd071e49..2168c4c39 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -4665,6 +4665,7 @@ sub tables_hashref { 'min_level', 'int', 'NULL', '', '', '', 'msgnum', 'int', '', '', '', '', 'to_addr', 'varchar', 'NULL', 255, '', '', + 'context_height', 'int', 'NULL', '', '', '', ], 'primary_key' => 'logemailnum', 'unique' => [], diff --git a/FS/FS/log.pm b/FS/FS/log.pm index 67a74d196..64d036e4d 100644 --- a/FS/FS/log.pm +++ b/FS/FS/log.pm @@ -87,14 +87,15 @@ sub insert { return $error if $error; my $contexts = {}; - foreach ( @_ ) { + my $context_height = @_; + foreach ( @_ ) { # ordered from least to most specific my $context = FS::log_context->new({ 'lognum' => $self->lognum, 'context' => $_ }); $error = $context->insert; return $error if $error; - $contexts->{$_} = 1; + $contexts->{$_} = $context_height--; } foreach my $log_email ( @@ -108,8 +109,9 @@ sub insert { } ) ) { - # shouldn't be a lot of these, so not packing this into the qsearch + # shouldn't be a lot of log_email records, so not packing these checks into the qsearch next if $log_email->context && !$contexts->{$log_email->context}; + next if $log_email->context_height && ($contexts->{$log_email->context} > $log_email->context_height); my $msg_template = qsearchs('msg_template',{ 'msgnum' => $log_email->msgnum }); unless ($msg_template) { warn "Could not send email when logging, could not load message template for logemailnum " . $log_email->logemailnum; diff --git a/FS/FS/log_email.pm b/FS/FS/log_email.pm index 9c53c230a..a055cb4c6 100644 --- a/FS/FS/log_email.pm +++ b/FS/FS/log_email.pm @@ -42,6 +42,9 @@ The following fields are currently supported: =item to_addr - who the email will be sent to (in addition to any bcc on the template) +=item context_height - number of context stack levels to match against +(0 or null matches against full stack, 1 only matches lowest level context, 2 matches lowest two levels, etc.) + =back =head1 METHODS @@ -88,6 +91,7 @@ sub check { || $self->ut_number('min_level') || $self->ut_foreign_key('msgnum', 'msg_template', 'msgnum') || $self->ut_textn('to_addr') + || $self->ut_numbern('context_height') ; return $error if $error; |
