$logger.getLoggers
¶
Description¶
Retourne le détail de tous les loggers définis sur l'instance. La valeur de retour est un map dont la clé est un nom de logger et la valeur est le log level du logger en question.
Syntaxe¶
$logger.getLoggers( [ options ] )
Paramètres¶
options
map-
Options d'extraction des loggers. Les options reconnues sont:
format
string-
Format de sortie. Les formats disponibles sont:
map
: Sortie sous forme de map dans lequel la clé est le nom du logger et la valeur son niveau de log.. C'est le format par défaut.tree
: Sortie sous forme de map dans lequel les noms de logger sont décomposés de façon à former un arbre. Par exemple le nom de loggerch.epilogic.ewt.actions.EwtAction
sera décomposé en élémentsch
,epilogic
,ewt
,actions
etEwtAction
structurés de façon hiérarchique. La valeur de la branche finalEwtAction
reprend le niveau de log actuel. Voir exemple 2 ci-dessous.tree-opt
: Format quasi équivalent autree
, à la différence que les noms de clés sont optimisés. Ainsi par exemplech.epilogic.ewt
n'est pas décomposé car ces élément ne possèdent chacun qu'un seul fils. Voir exemple 3 ci-dessous.
Retour¶
Map énumérant tous les loggers de l'instance et leur log level actuel.
Exemple 1¶
Extrait la liste des loggers sous forme de map simple.
var loggers = $logger.getLoggers();
// énumère les entrées du map (triées selon les noms de logger)
for (var key : $array.sort($map.keys(loggers))) {
$logger.println(key & "\t" & loggers[key]);
}
La fonction affiche les traces suivantes:
ch.epilogic.ewt.actions.EwtAction debug
ch.epilogic.ewt.actions.EwtActionFactory debug
ch.epilogic.ewt.actions.EwtCommand debug
ch.epilogic.ewt.application.EwtApplication debug
ch.epilogic.ewt.application.databaseschema.EwtDatabaseSchema debug
ch.epilogic.ewt.application.databaseschema.EwtDatabaseSchemaColumn debug
ch.epilogic.ewt.application.descript.EwtDescriptCloneable debug
ch.epilogic.ewt.application.descript.EwtDescriptField debug
ch.epilogic.ewt.application.descript.EwtDescriptGroup debug
ch.epilogic.ewt.application.descript.EwtDescriptModel debug
ch.epilogic.ewt.application.descript.properties.EwtDescriptPropertyElement debug
...
Exemple 2¶
Variante qui demande une sortie sous forme d'arbre.
var json = $json.toJson($logger.getLoggers({ format: "tree" }));
L'appel ci-dessus construit un objet json semblable à celui-ci (ici mis en forme et abrégé pour des questions de lisibilité)
{
"ch": {
"epilogic": {
"ewt": {
"scheduler": {
"EwtScheduler": "debug"
},
"core": {
"EwtUserAgentSession": "debug",
"EwtSnowflakeId": "debug",
"EwtUserAgentThread": "debug",
"EwtSession": "debug",
"EwtMainInstance": "trace",
"EwtThread": "debug",
"EwtUserAgentSessionTable": "debug"
},
"database": {
"impl": {
"EwtDatabaseSQLite": "debug"
},
"EwtDatabaseEngine": "debug",
"EwtDatabaseConnectionPool": "debug"
},
"application": {
"EwtApplication": "debug",
"document": {
"context": {
"EwtDocumentContextGroup": "debug",
"EwtDocumentContextField": "debug",
"EwtDocumentContextTuple": "debug",
"EwtDocumentContextDocument": "debug"
}
},
...
},
...
}
}
}
}
Exemple 3¶
Variante qui demande une sortie sous forme d'arbre optimisé.
var json = $json.toJson($logger.getLoggers({ format: "tree-opt" }));
L'appel ci-dessus construit un objet json semblable à celui-ci (ici mis en forme et abrégé pour des questions de lisibilité)
{
"ch.epilogic.ewt": {
"scheduler.EwtScheduler": "debug",
"core": {
"EwtUserAgentSession": "debug",
"EwtSnowflakeId": "debug",
"EwtUserAgentThread": "debug",
"EwtSession": "debug",
"EwtMainInstance": "trace",
"EwtThread": "debug",
"EwtUserAgentSessionTable": "debug"
},
"database": {
"EwtDatabaseEngine": "debug",
"impl.EwtDatabaseSQLite": "debug",
"EwtDatabaseConnectionPool": "debug"
},
"application": {
"EwtApplication": "debug",
"document.context": {
"EwtDocumentContextGroup": "debug",
"EwtDocumentContextField": "debug",
"EwtDocumentContextTuple": "debug",
"EwtDocumentContextDocument": "debug"
},
...
},
...
}
}