Conferencing: Simple Logfile Patch

I've made a small and simple patch to the 0.4.1 conferencing component to enable basic logging of rooms. You can switch on logging for a room you define in the configuration of the conference component instance, by adding a <log/> tag into a <room/> definition, like this:

<room jid='cellar@confpub-l.cicero'>
  <name>The Cellar</name>
  <log>/tmp/cellar.log</log>
</room>

If you don't specify a name for the logfile in the <log/> tag, the JID of the room will be used.

Rooms not defined in the configuration cannot be logged (so you can't be accused of being Big Brother :-).

Typical log records look like this:

Thu Jul 12 12:37:03 2001 LOGGING STARTED
Thu Jul 12 12:38:08 2001 dj has become available
Thu Jul 12 12:38:14 2001 [dj] hello
Thu Jul 12 12:38:15 2001 [dj] second line
Thu Jul 12 12:38:52 2001 alpha has become available
Thu Jul 12 12:38:57 2001 [alpha] hello this is alpha
Thu Jul 12 12:39:01 2001 [alpha] second line from alpha
Thu Jul 12 12:39:03 2001 alpha has left
Thu Jul 12 12:39:14 2001 [dj] /me does a 'me'
Thu Jul 12 12:39:48 2001 dj has left
Thu Jul 12 12:39:58 2001 alpha has become available
Thu Jul 12 12:40:02 2001 [alpha] me again
Thu Jul 12 12:40:07 2001 alpha is now known as zoom
Thu Jul 12 12:40:10 2001 [zoom] hi
Thu Jul 12 12:40:11 2001 zoom has left

As you can see, it's basic, but it does the job for me.

I modified conference.h, conference.c and conference_room.c. A version of the conference-0.4.1.tar.gz tarball with the modifications already applied is here.

Don't forget that you can run a second (or Nth) instance of a component by setting it up with a unique ID and making sure you point to the correct directory (that contains the .so shared library) in Jabber; you don't have to replace your existing conferencing module to experiment like this.

Have fun.