Minor cosmetic changes
[clearscm.git] / maps / bin / MAPSLog.pm
1 #!/usr/bin/perl
2 #################################################################################
3 #
4 # File:         $RCSfile: MAPSLog.pm,v $
5 # Revision:     $Revision: 1.1 $
6 # Description:  MAPS routines for logging.
7 # Author:       Andrew@DeFaria.com
8 # Created:      Fri Nov 29 14:17:21  2002
9 # Modified:     $Date: 2013/06/12 14:05:47 $
10 # Language:     perl
11 #
12 # (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
13 #
14 ################################################################################
15 package MAPSLog;
16
17 use strict;
18
19 use FindBin;
20
21 use lib $FindBin::Bin;
22
23 use MAPSDB;
24 use MAPSUtil;
25 use vars qw (@ISA @EXPORT);
26 use Exporter;
27
28 @ISA = qw (Exporter);
29
30 @EXPORT = qw (
31   Debug
32   Error
33   GetStats
34   Info
35   Logmsg
36   countlog
37   getstats
38   @Types
39 );
40
41 our @Types = (
42   'returned',
43   'whitelist',
44   'blacklist',
45   'registered',
46   'mailloop',
47   'nulllist'
48 );
49
50 sub countlog (;$$) {
51   my ($condition, $type) = @_;
52
53   return MAPSDB::countlog $condition, $type;
54 } # countlog
55
56 sub nbr_msgs ($) {
57   my ($sender) = @_;
58
59   return MAPSDB::FindEmail $sender;
60 } # nbr_msgs
61
62 sub GetStats (;$$) {
63   my ($nbr_days, $date) = @_;
64
65   $nbr_days     ||= 1;
66   $date         ||= Today2SQLDatetime
67
68   my %dates;
69
70   while ($nbr_days > 0) {
71     my $ymd = substr $date, 0, 10;
72     my $sod = $ymd . ' 00:00:00';
73     my $eod = $ymd . ' 23:59:59';
74
75     my %stats;
76
77     foreach (@Types) {
78       my $condition = "log.type=\'$_\' and (log.timestamp > \'$sod\' and log.timestamp < \'$eod\')";
79       $stats{$_} = countlog $condition, $_;
80     } # foreach
81
82     $dates{$ymd} = \%stats;
83
84     $date = SubtractDays $date, 1;
85     $nbr_days--;
86   } # while
87
88   return %dates
89 } # GetStats
90
91 sub Logmsg ($$$) {
92   my ($type, $sender, $msg) = @_;
93
94   AddLog $type, $sender, $msg;
95 } # logmsg
96
97 sub Debug ($) {
98   my ($msg) = @_;
99
100   Logmsg 'debug', '', $msg;
101 } # Debug
102
103 sub Error ($) {
104   my ($msg) = @_;
105
106   Logmsg 'error', '', $msg;
107 } # Error
108
109 sub Info ($) {
110   my ($msg) = @_;
111
112   Logmsg 'info', '', $msg;
113 } # info
114
115 1;