BuiltWithNOF
JabLogger

JabLogger: A logging proxy for Jabber messages.

Spiro Michaylov:   spiro AT michaylov DOT com

This is an open source (MIT-style license) tool for logging Jabber messages.

Latest release (recommended): Beta version 0.6.0 (zip file).

Previous versions:


JabLogger is a proxy server for Jabber messages that logs all messages sent in individual per user log files. JabLogger listens on the port advertised as the Jabber server port on a given host (called the “proxy port”). The Jabber server is setup to listen on a different port (celled the “server port”) on the same host or a different host. When clients connect to the proxy port, a dedicated TCP/IP connection is established by JabLogger to the server port on their behalf, so that the presence of JabLogger is transparent to both the Jabber clients and the Jabber server. All messages are logged in one directory with time and date stamps and “to” and “from” data. Only messages sent to or from clients that are connected to the JabLogger are logged.

JabLogger is implemented in Java. It is compiled using Java 2 SDK  v1.4.0_01.

There are two typical ways to use JabLogger:

  1. A single user could choose to always connect to a Jabber server through JabLogger to get all their incoming and outgoing messages logged for their own personal use.
  2. An entire organization could require all users to connect to their Jabber server through JabLogger to ensure that all messages are logged. In some industries and some occupations such logging of instant messages and chat is, or soon will be, required by law.

Configuration Options

How you configure JabLogger depends on your motivation and how widely it is to be used. Some Jabber users just want a log for their own use, while in some industries and some occupations the logging of instant messages and chat is, or soon will be, required by law, so some organizations ill need to adopt it wholesale.

One way to is to use JabLogger as a “personal proxy” for a single Jabber client. Typically it would be installed on the machine on which the client runs. The user would have to choose a port on which JabLogger would listen, configure JabLogger to use the appropriate Jabber server name and port, and configure the client to use the JabLogger port on the local machine instead.

Of course, only messages sent to or from that client will be logged.

On the other hand, groups of Jabber users could agree to use JabLogger, even if the rest of their organization does not. Individual groups could run their own JabLogger (perhaps on their workgroup server) or they could run a shared JabLogger server for all the groups that wanted logging. Once again, only messages to and from the participating users would be logged.

Finally, an entire organization could run a JabLogger server, and advertise it’s port and host as being those of the Jabber server. All messages to or from members of the organization would be logged.

Installation

JabLogger is not limited to any specific OS, but the files provided allow for running it is a simple Windows command line process or as a Windows service.

Installing as a command line process

You will probably need to edit jablogger.bat at least to specify the path to your Java installation (JDK 1.4.0 or JRE 1.4.0.) To run JabLogger, simply run the jablogger.bat script with four arguments as follows:

  1. port that JabLogger listens on (the proxy port)
  2. port that the Jabber server listens on (the server port)
  3. host the jabber server runs on (host name or IP address)
  4. path to a the directory in which log files are to be placed (will be created if it does not exist)

For example:

  jablogger 9999 5222 jabberhost.mycompany.com c:\temp\JabberLogs

if your Jabber server runs on jabberhost.mycompany.com listening on port 5222, users will connect to port 9999 to use JabLogger, and logs will be saved in c:\temp\JabberLogs on the host where JabLogger runs.

Installing as a Windows service

This makes use of the open source Java Service Wrapper -- the necessary files from Version 2.2.7 for Windows are included. .

The installation involves the following three files:

  • InstallService.bat: edit to set correct path to the JabLogger installation
  • UninstallService.bat: likewise.
  • wrapper.conf: edit to set the following correctly
    • wrapper.java.command
    • wrapper.java.classpath.*
    • wrapper.java.library.path
    • wrapper.app.parameter.* (these are the four command line arguments described above)

After editing all these files use InstallService.bat to install the service and then start the service using the control panel (or by rebooting).

If the service doesn’t start, change the value of wrapper.syslog.loglevel in the wrapper.conf file to DEBUG, try to start the service again, and check the application event log for useful messages. 


This product includes software developed by the Apache Software Foundation (http://www.apache.org/)

 

[Home] [Spiro] [Projects] [Software Notes] [Book Reviews] [Jo] [Chester] [Cleo]