Changeset 5093c6f for perl/lib/BarnOwl/Logging.pm
- Timestamp:
- Aug 16, 2017, 12:53:41 PM (7 years ago)
- 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)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/lib/BarnOwl/Logging.pm
reea7bed4 r5093c6f 15 15 Modules wishing to customize how messages are logged should override the 16 16 relevant subroutines in the appropriate subclass of L<BarnOwl::Message>. 17 18 Modules wishing to log errors sending outgoing messages should call 19 L<BarnOwl::Logging::log_outgoing_error> with the message that failed 20 to be sent. 17 21 18 22 =head2 EXPORTS … … 76 80 } 77 81 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 84 Determines whether or not the passed message should be logged. 85 86 To customize the behavior of this method, override 87 L<BarnOwl::Message::should_log>. 88 89 =cut 90 91 sub 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 107 Call this method to (potentially) log a message. 108 109 To customize the behavior of this method for your messages, override 110 L<BarnOwl::Message::log>, L<BarnOwl::Message::should_log>, 111 L<BarnOwl::Message::log_base_path>, and/or 112 L<BarnOwl::Message::log_filenames>. 113 114 =cut 115 116 sub 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); 84 122 } 85 return join("\n", @rtn); 123 } 124 125 =head2 log_outgoing_error MESSAGE 126 127 Call this method to (potentially) log an error in sending an 128 outgoing message. Errors get logged to the same file(s) as 129 successful messages. 130 131 To customize the behavior of this method for your messages, override 132 L<BarnOwl::Message::log_outgoing_error>, 133 L<BarnOwl::Message::should_log>, 134 L<BarnOwl::Message::log_base_path>, and/or 135 L<BarnOwl::Message::log_filenames>. 136 137 =cut 138 139 sub 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 } 86 146 } 87 147
Note: See TracChangeset
for help on using the changeset viewer.