OpenIDM : réduire les logs du scheduler

Chez un client, nous avons activé le niveau de log à INFO par défaut afin d'avoir des traces des opérations, notamment car on travaille sur la base d'un changelog depuis un annuaire LDAP Sun, avec un polling toutes les 10 secondes. Plusieurs providers sont ainsi déclenchés : l'un pour les utilisateurs du LDAP, un autre pour les groupes, et encore un pour les groupes AD.

Ceci a pour effet de bord de remplir les logs d'informations peu utiles, du genre :

Nov 22, 2016 5:36:00 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.AD" found, invoking.
Nov 22, 2016 5:36:00 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.DSEE-LDAP" found, invoking.
Nov 22, 2016 5:36:00 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.DSEE-LDAP" invoke completed successfully.
Nov 22, 2016 5:36:00 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.AD" invoke completed successfully.
Nov 22, 2016 5:36:10 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.AD" found, invoking.
Nov 22, 2016 5:36:10 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.DSEE-LDAP" found, invoking.
Nov 22, 2016 5:36:10 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.DSEE-LDAP" invoke completed successfully.
Nov 22, 2016 5:36:10 PM org.forgerock.openidm.util.LogUtil logAtLevel
INFO: Scheduled service "scheduler-service-group.AD" invoke completed successfully.

Dans le fichier logging.properties, il n'y a pas moyen de spécifier le niveau de log pour le scheduler. En fait, ceci se fait directement dans le fichier de configuration du scheduler, en ajoutant l'option "invokeLogLevel" : "debug"

Par exemple :

{
    "enabled" : true,
    "type" : "cron",
    "persisted" : true,
    "misfirePolicy" : "fireAndProceed",
    "schedule" : "0/10 * * * * ?",
    "concurrentExecution" : false,
    "invokeService" : "provisioner",
    "invokeContext" : {
        "action" : "liveSync",
        "source" : "system/DSEE/user"
    },
    "invokeLogLevel" : "debug"
}

Du coup, on gagne en lisibilité dans les logs, et on épargne de l'espace disque, tout en pouvant garder un historique un peu plus long.

L'option est présente dans la documentation (Integrator's guide). Mais comme elle n'est pas intégrée dans le fichier logging.properties, elle n'est pas forcément facile à trouver.

 

Catégorie