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/lsc/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>

Output the synchronization to CSV files

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

This uses the logback logs, so you have to declare this in the /etc/lsc/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 :

  • logOperations : which actions you want to log (create, update, delete, modrdn). You can specify multiple actions by grouping them with commas “,”.

  • separator : which separator you want to use in the output (default a semi-colon “;”)

  • 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.

  • outputHeader : true or false. This will print the “attrs” option before outputting any data lines - thus your CSV file can have a standard header.

  • 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.

Output the synchronization to LDIF files

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

This uses the logback logs, so you have to declare this in the /etc/lsc/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://docs.oracle.com/cd/E19476-01/821-0506/accessing-logs.html

Base installation is in /tmp/opends-test