My progs / irclog

[ <- main ]


[ version history | bugs | next version | how to install & use | links ]

Irclog is a program for logging irc channel activity into files. It is aimed to be an alternative to the hard-to-parse and sometimes insufficient ircII /log feature. The logger is not aimed to produce any kind of statistical output to the channels it logs, just to log.

Version history

Version 1.2 | 10.11.2000 | download source (11k)

Only some small fixes, better output format (each channel is logged to a separate file, and thus the channel invovled is not listed inside the log file):

974329240 1 - logging started for channel
974329240 0 - logging stopped for channel. Only shown when the logger has been kicked from some channel, not if the logger client is killed. This might change later.
974428030 T Jonas! ja NYT nukkumaan - sample channel talk
974428039 Q Jonas! koitetaan taas - sample /quit
974430291 Q Tero! Leaving - another /quit
974438961 J Antero! - /join
974439014 t Antero! Mato syö varhaisen linnun - topic change
973076079 A Jonas! houkaisee - /me action
973865181 N xkr47! boofar - nick change
974329240 L Antero! - /leave

... that is:

  • the first field is the timestamp (as returned by time(2), seconds since 1970)
  • the second is the type of event
  • the third is the person who did it
  • the rest is an optional message, present or not depending on the event type, see examples above

Version 1.1 | 10.11.2000 | download source (11k)


  • channel talk
  • /me actions
  • nick changes
  • joins, leaves, quits & kills
  • topic changes

Understands /invite & /kick & /msg commands. The /msg commands just gives a status report. Remembers which channels it was invited to, thus restarting the client should not need further interaction to make it work as before.

Version 1.0 | 31.10.2000 | download source (10k)

First version. Logs just channel talk and /me actions, understands /invite & /kick directives.


Known bugs of version 1.2:

  • If the logger logs multiple channels, nick changes are logged on all channels even if the user changing nicks wasn't on all channels.
  • Any user can invite the logger to any channel but only channel operators can kick it out.
  • If the server disconnects, the logger does not try to reconnect. Also, no alternative servers are supported at the moment.
  • If everybody else disconnects, the logger still stays on the channel, regardless of whether it has operator status or not. If the bot hasn't got operator status, it should leave the channel and then join it again to gain operator status. Then it would sit back and wait for another user to join the channel and give that user operator status and then continue as normal. Also, if the channel has multiple bots, and everybody else but the bots disconnect, there shold be a way to recover from this situation without ending up with no operators.

Next version

Stuff that would be nice to have in the next version:

  • /msg control commands
  • possibility to change the nick of the logger
  • password-protected operations

How to install & use

  • The program uses the botnet package to communicate with the irc server. Get it from, and install it.
  • After that, grab one of the versions above, copy the file over the examples/bot.c file, run make in that directory. This should result in an executable called bot. You might want to modify the defaults (channel, nick) before using it to avoid conflicts. This is done by modifying the #define statements in the beginning of the source.