Files
bitchx/script/logger.bx
Kevin Easton 28febcfea9 Initial import of the ircii-pana-1.1-final source tree.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/tags/ircii-pana-1.1-final@1 13b04d17-f746-0410-82c6-800466cd88b0
2008-02-25 09:25:32 +00:00

148 lines
8.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#####################################################################################
## logger.bx by powuh, Wed Dec 4 20:54:36 EST 2002
##
## This is a logger script for BitchX and Epic. It is fully customizable, so you
## can log what you want to, where you want to! I wrote this after finding many
## flaws in bxlog.bx by dARTh in both log handling, and code syntax. Hopefully
## my logger.bx will be a better replacement.
##
## Any comments, suggestions, etc can be directed to powuh on EFNet's #BitchX
#####################################################################################
@ log.version = [1.0]
@ log.config.file = [~/.bxlogger.cfg]
if (fexist($log.config.file) == -1) {
xecho -b Config file, $log.config.file, not found... Using default values. Type /logconf to configure!
@ logdir = [~/.BitchX/logs];@ logdate = [%m-%d-%y/%H:%M];@ logdir.channels = [$logdir/channels]
@ logdir.messages = [$logdir/messages];@ logdir.notices = [$logdir/notices];@ logdir.ctcp = [$logdir/ctcp]
@ logdir.dcc = [$logdir/dcc];@ logpublic = 1;@ logprivate = 1;@ lognotices = 1;@ logdccs = 1;@ logctcps = 1
}{load $log.config.file}
alias _logger {
if (logenable) {
if (log.debug) echo _logger $0 > $1-
if (fexist($logdir) == -1) {${mkdir($logdir)?[eval xecho -b mkdir failed $logdir]:[]}}
if (logsepdirs && fexist($logdir.channels) == -1) {${mkdir($logdir.channels)?[eval xecho -b mkdir failed $logdir.channels]:[]}}
if (logsepdirs && fexist($logdir.messages) == -1) {${mkdir($logdir.messages)?[eval xecho -b mkdir failed $logdir.messages]:[]}}
if (logsepdirs && fexist($logdir.notices) == -1) {${mkdir($logdir.notices)?[eval xecho -b mkdir failed $logdir.notices]:[]}}
if (logsepdirs && fexist($logdir.ctcp) == -1) {${mkdir($logdir.ctcp)?[eval xecho -b mkdir failed $logdir.ctcp]:[]}}
if (logsepdirs && fexist($logdir.dcc) == -1) {${mkdir($logdir.dcc)?[eval xecho -b mkdir failed $logdir.ctcp]:[]}}
@ :logfh = open($0 W)
@ write($logfh [$strftime($logdate)] $stripc($stripansicodes($strip( $1-))))
@ close($logfh)
}
}
alias logconf {
if ([$0]) switch ($0) {
(a) {@ logenable = ([$1]==[yes])?1:0}
(b) {@ logpublic = ([$1]==[yes])?1:0}
(c) {@ logmessages = ([$1]==[yes])?1:0}
(d) {@ lognotices = ([$1]==[yes])?1:0}
(e) {@ logdccs = ([$1]==[yes])?1:0}
(f) {@ logctcps = ([$1]==[yes])?1:0}
(g) {@ logdir = ([$1])?[$1]:[$logdir]}
(h) {@ logsepdirs = ([$1]==[yes])?1:0}
(h1) {@ logdir.channels = ([$1])?[$1]:[$logdir.channels]}
(h2) {@ logdir.messages = ([$1])?[$1]:[$logdir.messages]}
(h3) {@ logdir.notices = ([$1])?[$1]:[$logdir.notices]}
(h4) {@ logdir.dcc = ([$1])?[$1]:[$logdir.dcc]}
(h5) {@ logdir.ctcp = ([$1])?[$1]:[$logdir.ctcp]}
(i) {@ logdate = ([$1])?[$1]:[$logdate]}
(*) {xecho -b Invalid switch to /logconf: $0;return}
}
xecho -b
xecho -b Logger Configuration:
xecho -b [a] Enable Logging ..................... ${logenable?[yes]:[no]}
if (logenable) xecho -b [b] Log channel activity ............... ${logpublic?[yes]:[no]}
if (logenable) xecho -b [c] Log private messages ............... ${logmessages?[yes]:[no]}
if (logenable) xecho -b [d] Log notices ........................ ${lognotices?[yes]:[no]}
if (logenable) xecho -b [e] Log DCCs ........................... ${logdccs?[yes]:[no]}
if (logenable) xecho -b [f] Log CTCPs .......................... ${logctcps?[yes]:[no]}
if (logenable) xecho -b [g] Log Directory ...................... ${logdir?[$logdir/]:[Not Set]}
if (logenable) xecho -b [h] Subdirectories by type ............. ${logsepdirs?[yes]:[no]}
if (logsepdirs) xecho -b [h1] Channel log directory .......... ${logdir.channels?[$logdir.channels/]:[Not Set]}
if (logsepdirs) xecho -b [h2] Message log directory .......... ${logdir.messages?[$logdir.messages/]:[Not Set]}
if (logsepdirs) xecho -b [h3] Notice log directory ........... ${logdir.notices?[$logdir.notices/]:[Not Set]}
if (logsepdirs) xecho -b [h4] DCC log directory .............. ${logdir.dcc?[$logdir.dcc/]:[Not Set]}
if (logsepdirs) xecho -b [h5] CTCP log directory ............. ${logdir.ctcp?[$logdir.ctcp/]:[Not Set]}
if (logenable) xecho -b [i] Log Timestamp Format ............... $logdate \($strftime($logdate)\)
xecho -b
xecho -b Type /logconf <letter> <value> to configure. Then /logsave to save settings.
xecho -b
}
alias logsave {
@rename($log.config.file $log.config.file~)
@ :savefile = open($log.config.file W T)
@ write($savefile @ logenable = $logenable)
@ write($savefile @ logpublic = $logpublic)
@ write($savefile @ logmessages = $logmessages)
@ write($savefile @ lognotices = $lognotices)
@ write($savefile @ logdccs = $logdccs)
@ write($savefile @ logctcps = $logctcps)
@ write($savefile @ logdir = [$logdir])
@ write($savefile @ logsepdirs = $logsepdirs)
@ write($savefile @ logdir.channels = [$logdir.channels])
@ write($savefile @ logdir.messages = [$logdir.messages])
@ write($savefile @ logdir.notices = [$logdir.notices])
@ write($savefile @ logdir.dcc = [$logdir.dcc])
@ write($savefile @ logdir.ctcp = [$logdir.ctcp])
@ write($savefile @ logdate = [$logdate])
@ close($savefile)
xecho -b Saved logger configuration to $log.config.file
}
alias loghelp {
xecho -b
xecho -b Logger version $log.version by powuh
xecho -b Commands:
xecho -b /loghelp ............ What you are reading now
xecho -b /logconf ............ Logger Configuration
xecho -b /logsave ............ Save current configuration
xecho -b
}
## Private message hooks
on #-msg 6192 * {if (logmessages) {_logger ${logsepdirs?logdir.messages:logdir}/$tolower($0.log) <$0> $1-}}
on #-send_msg 6192 * {if (logmessages) {_logger ${logsepdirs?logdir.messages:logdir}/$tolower($0.log) <$N> $1-}}
## Notice hooks
on #-notice 6192 * {if (lognotices) {_logger ${logsepdirs?logdir.notices:logdir}/$tolower($0.log) -$0\- $1-}}
on #-send_notice 6192 * {if (lognotices) {_logger ${logsepdirs?logdir.notices:logdir}/$tolower($0.log) =$0= $1-}}
## DCC hooks
on #-dcc_chat 6192 * {if (logdccs) {_logger ${logsepdirs?logdir.dcc:logdir}/$tolower($0.dcc.log) <$0> $1-}}
on #-send_dcc_chat 6192 * {if (logdccs) {_logger ${logsepdirs?logdir.dcc:logdir}/$tolower($0.dcc.log) <$N> $1-}}
on #-dcc_connect 6192 * {if (logdccs) {_logger ${logsepdirs?logdir.dcc:logdir}/$tolower($0.dcc.log) DCC Connect from $0 $1-}}
on #-dcc_error 6192 * {if (logdccs) {_logger ${logsepdirs?logdir.dcc:logdir}/$tolower($0.dcc.log) DCC Error from $0 $1-}}
on #-dcc_lost 6192 * {if (logdccs) {_logger ${logsepdirs?logdir.dcc:logdir}/$tolower($0.dcc.log) DCC Lost from $0 $1-}}
on #-dcc_request 6192 * {if (logdccs) {_logger ${logsepdirs?logdir.dcc:logdir}/$tolower($0.dcc.log) DCC Request from $0 $1-}}
## Public channel hooks
on #-public 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) <$0> $2-}}
on #-public_other 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) <$0> $2-}}
on #-public_ar 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) <$0> $2-}}
on #-public_other_ar 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) <$0> $2-}}
on #-public_notice 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) $0\- $2-}}
on #-action 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) * $0 $2-}}
on #-send_public 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($0.log) <$N> $1-}}
on #-send_action 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($0.log) * $N $1-}}
on #-leave 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) *** Parted $0 \($2\)}}
on #-join 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) *** Joined $0 \($2\)}}
on #-kick 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($2.log) *** $0 was kicked by $1 \($3-\)}}
on #-topic 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) *** $0 changed topic to $2-}}
on #-channel_nick 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($0.log) *** $1 is now known as $2}}
on #-channel_signoff 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($0.log) *** $1 signoff\: $2-}}
on #-mode 6192 * {if (logpublic) {_logger ${logsepdirs?logdir.channels:logdir}/$tolower($1.log) *** $0 sets mode $2-}}
## CTCP hooks
on #-ctcp 6192 * {if (logctcps) {_logger ${logsepdirs?logdir.ctcp:logdir}/ctcp.log CTCP from $0\: $2-}}
on #-ctcp_reply 6192 * {if (logctcps) {_logger ${logsepdirs?logdir.ctcp:logdir}/ctcp.log CTCP $1 reply from $0\: $2-}}
eval xecho -b logger.bx version $log.version by powuh loaded. Type /loghelp for help.
# EOF