Managing output format through LogBack

LSC uses the LogBack library to output various messages. You can enable multiple outputs with different format by simply changing the configuration in the etc/logback.xml file.

Create an appender

The outputs uses the layouts of logback. So you first have to create an appender, you can find documentation of the appenders here : http://logback.qos.ch/manual/appenders.html. The configuration for a file appender is here : http://logback.qos.ch/manual/appenders.html#FileAppender. Then you have to include this Appender (which is only the output destination description) to a logger like the following sample :

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <.../>
  </appender>
  <logger name="org.lsc" level="INFO">
     <appender-ref ref="FILE"/>
  </logger>

Outputting the synchronization in CSV files

In LSC you have a specific layout to log every action in a CSV file.

This can be replaced by CSV audit.

This uses the logback logs, so you have to declare this in the /etc/logback.xml file.

Here is a small example :

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <File>/tmp/csv.log</File>
  <Append>true</Append>
  <layout class="org.lsc.utils.output.CsvLayout">
    <logOperations>create,update</logOperations>
    <attrs>dn;uid;sn;givenName;description;cn;mail;;objectClass;userAccountControl</attrs>
    <separator>;</separator>
    <outputHeader>true</outputHeader>
    <taskNames>MyTask</taskNames>
  </layout>
</appender>

Use the ch.qos.logback.core.FileAppender or any subclass as an appender. Specify the path to the csv file you want to write to in the tag <File>. Use the org.lsc.utils.output.CsvLayout for the layout

This specific layout has 4 options :

  1. logOperations : which actions you want to log (create, update, delete, modrdn). You can specify multiple actions by grouping them with commas ','.
  2. separator : which separator you want to use in the output (default a semi-colon ;)
  3. attrs : which attributes you want to write. The attributes MUST be separated by the property separator. You can specifiy empty columns if you want to.
  4. outputHeader : true or false. This will print the “attrs” option before outputting any data lines - thus your CSV file can have a standard header.
  5. taskNames : a coma separated list of tasks you want to output in CSV

Note: The special attribute name “dn” can be used to output the entry's distinguishedName.

You can specify multiple loggers using the same layout and different options. For example, you can specify 4 loggers, one for each actions.

Outputting the synchronization in LDIF files

In LSC you have a specific layout to log every action in a LDIF file.

This can be replaced by LDIF audit.

This uses the logback logs, so you have to declare this in the /etc/logback.xml file.

Here is a small example:

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <File>/tmp/csv.log</File>
  <Append>true</Append>
  <layout class="org.lsc.utils.output.LdifLayout">
    <logOperations>create,update</logOperations>
    <onlyLdif>true</onlyLdif>
  </layout>
</appender>

The parameters are the same as for the CsvLayout.

Embedded OpenDJ logging

More information can be found at the following location https://www.opends.org/wiki/page/AccessingLogs

Base installation is in /tmp/opends-test