# Alog README

Alog is a stackable logging framework for Ada. It aims to be straight forward to use and is easily extendable. It provides support for various logger types, log facilities, loglevel policies and message transformations.

## Prerequisites

Alog is written in Ada so you need to have GNAT installed to compile Alog. The library comes in two flavours: base and full. The base build includes facilities to log to files and syslog while the full version provides more advanced log facilities like SMTP, Jabber/XMPP or PostgreSQL. For the full version you need to have AWS (Ada Web Server) and APQ (Ada95 database binding) installed (see the Installation section).

GNAT is available for most distributions. Since Alog uses pedantic compiler flags to check the code, make sure you have gnat version 4.3 or later installed on your system.

## Download

### Release version

The current release version of alog is available at http://www.codelabs.ch/download. The API documentation of the current release can be found at http://www.codelabs.ch/alog/api.

### Verify a Release

To verify the integrity and authenticity of the distribution tarball, import the key http://www.codelabs.ch/keys/0x3DC359DEpub.asc and type the following command:

    $ gpg --verify libalog-{version}.tar.bz2.sig

The key fingerprint of the public key (0x3DC359DE) is:

    Key fingerprint = 752C 4EBC 115D 5EAD 75F7  0F34 A0AE 8AD7 3DC3 59DE

### Development version

The current development version of alog is available through its git repository:

    $ git clone http://git.codelabs.ch/git/alog.git

A browsable version of the repository is also available here: http://git.codelabs.ch/?p=alog.git

## Installation

The base build of Alog has no special library dependencies. To run the testcases (for both builds), you need to have the Ahven Unit Test-Framework installed:

- Ahven (Test-Framework): http://ahven.stronglytyped.org/

To compile the full build, you further need to have the following libraries installed on your system:

- AWS (Ada Web Server): http://libre.adacore.com/libre/tools/aws/

- APQ (Ada95 database binding): http://framework.kow.com.br/projects/show/apq

The building and installation process of Alog is simple. Just type in the following commands. You must be root to install the library system wide.

    $ tar -xzf libalog-{version}.tar.bz2
    $ cd libalog-{version}
    $ make
    $ make PREFIX=/usr/local install

This will compile and install the base build (default). To do a full build, you need to set and export the environment variable `TARGET` to "full" like so:

    $ export TARGET=full
    $ make
    $ make PREFIX=/usr/local install

If no `PREFIX` is specified, `$(HOME)/libraries` is used as installation directory.

## Tests

After compiling and linking Alog, you can test if everything works as expected by typing the following command:

    $ make tests

You should then see `PASS` behind each of the tests.