22 |
|
|
23 |
Name of log file |
Name of log file |
24 |
|
|
25 |
|
=item --follow=file.log |
26 |
|
|
27 |
|
Follows new messages in file |
28 |
|
|
29 |
=back |
=back |
30 |
|
|
31 |
=head1 DESCRIPTION |
=head1 DESCRIPTION |
50 |
$CHANNEL = '#irc-logger' if ($HOSTNAME =~ m/llin/); |
$CHANNEL = '#irc-logger' if ($HOSTNAME =~ m/llin/); |
51 |
my $IRC_ALIAS = "log"; |
my $IRC_ALIAS = "log"; |
52 |
|
|
53 |
my %FOLLOWS = |
# default log to follow and announce messages |
54 |
( |
my $follows_path = 'follows.log'; |
|
ACCESS => "/var/log/apache/access.log", |
|
|
ERROR => "/var/log/apache/error.log", |
|
|
); |
|
55 |
|
|
56 |
my $DSN = 'DBI:Pg:dbname=' . $NICK; |
my $DSN = 'DBI:Pg:dbname=' . $NICK; |
57 |
|
|
97 |
my $log_path; |
my $log_path; |
98 |
GetOptions( |
GetOptions( |
99 |
'import-dircproxy:s' => \$import_dircproxy, |
'import-dircproxy:s' => \$import_dircproxy, |
100 |
|
'follows:s' => \$follows_path, |
101 |
'log:s' => \$log_path, |
'log:s' => \$log_path, |
102 |
); |
); |
103 |
|
|
111 |
print strftime($TIMESTAMP,localtime()), ' ', join(" ",@_), $/; |
print strftime($TIMESTAMP,localtime()), ' ', join(" ",@_), $/; |
112 |
} |
} |
113 |
|
|
114 |
|
# LOG following |
115 |
|
|
116 |
|
my %FOLLOWS = |
117 |
|
( |
118 |
|
# ACCESS => "/var/log/apache/access.log", |
119 |
|
# ERROR => "/var/log/apache/error.log", |
120 |
|
); |
121 |
|
|
122 |
|
sub add_follow_path { |
123 |
|
my $path = shift; |
124 |
|
my $name = $path; |
125 |
|
$name =~ s/\..*$//; |
126 |
|
warn "# using $path to announce messages from $name\n"; |
127 |
|
$FOLLOWS{$name} = $path; |
128 |
|
} |
129 |
|
|
130 |
|
add_follow_path( $follows_path ) if ( -e $follows_path ); |
131 |
|
|
132 |
# HTML formatters |
# HTML formatters |
133 |
|
|
134 |
my %escape = ('<'=>'<', '>'=>'>', '&'=>'&', '"'=>'"'); |
my %escape = ('<'=>'<', '>'=>'>', '&'=>'&', '"'=>'"'); |
644 |
$_[KERNEL]->post($IRC_ALIAS => join => $CHANNEL); |
$_[KERNEL]->post($IRC_ALIAS => join => $CHANNEL); |
645 |
$_[KERNEL]->post($IRC_ALIAS => join => '#logger'); |
$_[KERNEL]->post($IRC_ALIAS => join => '#logger'); |
646 |
$_[KERNEL]->yield("heartbeat"); # start heartbeat |
$_[KERNEL]->yield("heartbeat"); # start heartbeat |
647 |
# $_[KERNEL]->yield("my_add", $_) for keys %FOLLOWS; |
$_[KERNEL]->yield("my_add", $_) for keys %FOLLOWS; |
648 |
$_[KERNEL]->post( $IRC_ALIAS => privmsg => 'nickserv', "IDENTIFY $NICK" ); |
$_[KERNEL]->post( $IRC_ALIAS => privmsg => 'nickserv', "IDENTIFY $NICK" ); |
649 |
}, |
}, |
650 |
irc_public => sub { |
irc_public => sub { |
675 |
|
|
676 |
}, |
}, |
677 |
irc_ping => sub { |
irc_ping => sub { |
678 |
warn "pong ", $_[ARG0], $/; |
_log( "pong ", $_[ARG0] ); |
679 |
$ping->{ $_[ARG0] }++; |
$ping->{ $_[ARG0] }++; |
680 |
}, |
}, |
681 |
irc_invite => sub { |
irc_invite => sub { |
881 |
Filename => $FOLLOWS{$trailing}, |
Filename => $FOLLOWS{$trailing}, |
882 |
InputEvent => 'got_line', |
InputEvent => 'got_line', |
883 |
); |
); |
884 |
|
warn "+++ following $trailing at $FOLLOWS{$trailing}\n"; |
885 |
}, |
}, |
886 |
got_line => sub { |
got_line => sub { |
887 |
$_[KERNEL]->post($session => my_tailed => |
warn "+++ $trailing : $_[ARG0]\n"; |
888 |
time, $trailing, $_[ARG0]); |
$_[KERNEL]->post($session => my_tailed => time, $trailing, $_[ARG0]); |
889 |
}, |
}, |
890 |
}, |
}, |
891 |
); |
); |