Changeset 5093c6f for perl


Ignore:
Timestamp:
Aug 16, 2017, 12:53:41 PM (7 years ago)
Author:
Jason Gross <jasongross9@gmail.com>
Branches:
master
Children:
4ead7b3
Parents:
9bfab40
git-author:
Jason Gross <jgross@mit.edu> (07/12/11 16:19:57)
git-committer:
Jason Gross <jasongross9@gmail.com> (08/16/17 12:53:41)
Message:
Moved the checking of whether or not to log messages to perl
Location:
perl/lib/BarnOwl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • perl/lib/BarnOwl/Logging.pm

    reea7bed4 r5093c6f  
    1515Modules wishing to customize how messages are logged should override the
    1616relevant subroutines in the appropriate subclass of L<BarnOwl::Message>.
     17
     18Modules wishing to log errors sending outgoing messages should call
     19L<BarnOwl::Logging::log_outgoing_error> with the message that failed
     20to be sent.
    1721
    1822=head2 EXPORTS
     
    7680}
    7781
    78 # For ease of use in C
    79 sub get_filenames_as_string {
    80     my @rtn;
    81     foreach my $filename (BarnOwl::Logging::get_filenames(@_)) {
    82         $filename =~ s/\n/_/g;
    83         push @rtn, $filename;
     82=head2 should_log_message MESSAGE
     83
     84Determines whether or not the passed message should be logged.
     85
     86To customize the behavior of this method, override
     87L<BarnOwl::Message::should_log>.
     88
     89=cut
     90
     91sub should_log_message {
     92    my ($m) = @_;
     93    # If there's a logfilter and this message matches it, log.
     94    # pass quiet=1, because we don't care if the filter doesn't exist
     95    return 1 if BarnOwl::message_matches_filter($m, BarnOwl::getvar('logfilter'), 1);
     96    # otherwise we do things based on the logging variables
     97    # skip login/logout messages if appropriate
     98    return 0 if $m->is_loginout && BarnOwl::getvar('loglogins') eq 'off';
     99    # check direction
     100    return 0 if $m->is_outgoing && BarnOwl::getvar('loggingdirection') eq 'in';
     101    return 0 if $m->is_incoming && BarnOwl::getvar('loggingdirection') eq 'out';
     102    return $m->should_log;
     103}
     104
     105=head2 log MESSAGE
     106
     107Call this method to (potentially) log a message.
     108
     109To customize the behavior of this method for your messages, override
     110L<BarnOwl::Message::log>, L<BarnOwl::Message::should_log>,
     111L<BarnOwl::Message::log_base_path>, and/or
     112L<BarnOwl::Message::log_filenames>.
     113
     114=cut
     115
     116sub log {
     117    my ($m) = @_;
     118    return unless BarnOwl::Logging::should_log_message($m);
     119    my $log_text = $m->log;
     120    foreach my $filename (BarnOwl::Logging::get_filenames($m)) {
     121        BarnOwl::Logging::enqueue_text($log_text, $filename);
    84122    }
    85     return join("\n", @rtn);
     123}
     124
     125=head2 log_outgoing_error MESSAGE
     126
     127Call this method to (potentially) log an error in sending an
     128outgoing message.  Errors get logged to the same file(s) as
     129successful messages.
     130
     131To customize the behavior of this method for your messages, override
     132L<BarnOwl::Message::log_outgoing_error>,
     133L<BarnOwl::Message::should_log>,
     134L<BarnOwl::Message::log_base_path>, and/or
     135L<BarnOwl::Message::log_filenames>.
     136
     137=cut
     138
     139sub log_outgoing_error {
     140    my ($m) = @_;
     141    return unless BarnOwl::Logging::should_log_message($m);
     142    my $log_text = $m->log_outgoing_error;
     143    foreach my $filename (BarnOwl::Logging::get_filenames($m)) {
     144        BarnOwl::Logging::enqueue_text($log_text, $filename);
     145    }
    86146}
    87147
  • perl/lib/BarnOwl/Message.pm

    r9bfab40 r5093c6f  
    225225    chomp $body;
    226226    return "ERROR (BarnOwl): $recipient\n$body\n\n";
     227}
     228
     229=head2 should_log MESSAGE
     230
     231Returns true if we should log C<MESSAGE>.  This does not override
     232user settings; if the BarnOwl variable C<loggingdirection> is in,
     233and C<MESSAGE> is outgoing and does not match the C<logfilter>, it
     234will not get logged regardless of what this method returns.
     235
     236Note that this method I<does> override the BarnOwl C<logging>
     237variable; if a derived class overrides this method and does not
     238provide an alternative BarnOwl variable (such as C<classlogging>),
     239the overriding method should check the BarnOwl C<logging> variable.
     240
     241Defaults to returning the value of the BarnOwl variable C<logging>.
     242
     243=cut
     244
     245sub should_log {
     246    return BarnOwl::getvar('logging') eq 'on';
    227247}
    228248
  • perl/lib/BarnOwl/Message/Zephyr.pm

    reea7bed4 r5093c6f  
    281281}
    282282
     283sub should_log {
     284    my ($m) = @_;
     285    if ($m->log_to_class_file) {
     286        return BarnOwl::getvar('classlogging') eq 'on';
     287    } else {
     288        return BarnOwl::getvar('logging') eq 'on';
     289    }
     290}
     291
    2832921;
Note: See TracChangeset for help on using the changeset viewer.