# documentation:2.0:logs
Keywords: documentation,2.0,logs

# Logs

LemonLDAP::NG provides 5 levels of error and has two kind of logs:

- technical logs
- user actions logs

Each category can be handle by a different logging framework. You can choose between:

- Lemonldap::NG::Common::Logger::Std: standard output (mapped in web server logs, see below)
- Lemonldap::NG::Common::Logger::Syslog: syslog logging
- Lemonldap::NG::Common::Logger::Apache2: use Apache2 logging, levels are stored in Apache2 logs and the level is controlled by `LogLevel` Apache parameter
- Lemonldap::NG::Common::Logger::Log4perl: use `Log4perl` framework to log (inspired by Java Log4J)

Except for Apache2 and Log4Perl, log level is defined by `logLevel` parameter set in `lemonldap-ng.ini` file. Logger configurations are defined in lemonldap-ng.ini. Example:

    [all]
    logger     = Lemonldap::NG::Common::Logger::Log4perl
    userLogger = Lemonldap::NG::Common::Logger::Syslog
    logLevel   = notice

You can also modify these values in each lemonldap-ng.ini section to have different values for portal, manager and handlers.

LLNG provides also a username that can be used by webservers in their access log. To configure the user identifier in access log, go in Manager, `General Parameters` > `Logging` > `REMOTE_USER`.

## Default loggers

- Apache handlers use by default Apache2 logger. This logger can't be used for other LLNG components
- Except when launched by LLNG FastCGI server (used by Nginx), Portal and Manager use Std logger by default
- All components lauched by LLNG FastCGI server use Syslog by default

## Log levels

### Technical log levels

- error is used for problems that must be reported to administrator and needs an action. In this case, some feature may not work
- warn is used for problems that doesn't block LLNG features but should be solved
- notice is used for actions that must be kept in logs
- info display some technical information
- debug produce a lot a debugging logs

### Log levels for user actions

- error is used to log bad user actions that looks malicious
- warn is used to log some errors like “bad password”
- notice is used for actions that must be kept in logs for accounting (connections, logout)
- info display some useful information like handler authorizations (at least 1 for each HTTP hit)
- debug isn't used

## Logger configuration

### Std logger

Nothing to configure except logLevel.

### Apache2 logger

The log level can be set with Apache `LogLevel` parameter. It can be configured globally, or inside a virtual host.

See http://httpd.apache.org/docs/current/mod/core.html#loglevel for more information.

### Syslog

You can choose facility in lemonldap-ng.ini file. Default values:

    syslogFacility     = daemon
    userSyslogFacility = auth

### Log4perl

You can indicate the Log4perl configuration file and the classes to use. Default values:

    log4perlConfFile   = /etc/log4perl.conf
    log4perlLogger     = LLNG
    log4perlUserLogger = LLNG.user