Swhack Logger Manifesto

I've been thinking about srgs a new design for IRC logging. Principly, I want a system that is flexible for the user, does not force anyone to be logged, is minimally confusing for log consumers, and doesn't rely on reams of silly syntax.

The core principle: bot logging options must be granularly customizable.

To that end:

It must be easy to turn the bot on and off

Specifying "logger, off" and "logger, on" is good, but we rarely used it. I'd prefer a much easier syntax; i.e., a couple of characters. More details on that in the comment character section below.

It must be easy to see if the bot is on or off

The state has to be clearly represented at all times. Signalling "logger is not logging" to the channel is fine until you forget about it. This works your way, too, because you don't want the bot to be accidentally off when there's a good topic of conversation. I'd like the state of a bot to be represented in the nickname of the bot itself: logger-on and logger-off.

Each user must be able to specify their own personal logging settings

It should be possible for a user to say "don't log me". This would, of course, lead to problems if one person is being logged, and the person with whom they are having a conversation is not being logged--it'll appear that one person is talking to themselves. So I feel that unlogged people should be registered in the logs, but with a special symbol to indicate that they are OLMing. Let's call it masking.

It should be easy to specify one's personal logging settings, and to toggle them at any time

It should be possible for a user to say "stop logging me for the time being, please" and similarly "start logging me again, please". People should be masked for that time period in the logs.

The temporary comment character should be simple and non-intrusive

Using an octothorpe, #, as a comment character was alright for me, but it's actually fairly obtrusive. I know that this has been thoroughly debated on #swhack, but I feel that ";" as a temporary comment character is the best--doesn't require shift to type, is used as a LISP comment (who's going to be crazy enough to paste LISP into a channel?), and has a thin glyph. This temporary commenting should note the user's presence in the same way as commenting blocks, and so I'll call it line-based masking.

And so, I propose a mechanism:

To enable global logging: ";; on"
logger-off => logger-on
To disable global logging: ";; off"
logger-on => logger-off
Line-based masking: "; <text>"
[no notification of state]
User-based masking on: ";!"
logger responds with a NOTICE
User-based masking off: ";*"
logger responds with a NOTICE

It should also be possible for one to mask comments that one has made within the past day or so, as long as the user has the same IP address (and/or possibly is registered with NickServ). This should be fairly hard to do, but not impossible: something like "/msg logger mask-my-comment YYYY-MM-DDTHH:MM:SSZ" would be okay.

Sean B. Palmer