⚠️ Ceci est un site de traduction non officiel, sans lien avec DCMTK / OFFIS. Pour des informations faisant autorité, consultez la page originale (https://support.dcmtk.org/docs/mod_oflog.html).

oflog: bibliothèque de journalisation basée sur log4cplus

Ce module contient des classes utilisées à des fins de journalisation. Cette bibliothèque est basée sur log4cplus.

Les principales classes sont (par ordre alphabétique) :

Fichiers

Les fichiers suivants fournissent des exemples de configuration ainsi que de la documentation complémentaire :

Exemples

L'exemple suivant montre comment utiliser oflog dans une application console.

La journalisation proprement dite

Nous avons d'abord besoin des en-têtes et des définitions nécessaires :

// Naturally, we need the header for oflog

#include "dcmtk/oflog/oflog.h"

// Then we create our logger object. The argument is the name of the logger

// which can be used to configure it from the config file

OFLogger my_log = OFLog::getLogger("dcmtk.apps.sample");

C'est tout ce qui est nécessaire pour créer des instructions de journalisation. Vous pouvez maintenant utiliser l'une des macros suivantes pour générer des entrées de journal :

OFLOG_FATAL(my_log, "This is a sample message of log level 'fatal'");

OFLOG_ERROR(my_log, "There are six log levels and each provides a OFLOG_level() macro");

OFLOG_WARN(my_log, "These macros are quite flexible");

OFLOG_INFO(my_log, "To output numbers like " << 5 << " you can use any iostream operations");

OFLOG_DEBUG(my_log, "Since iostreams are quite flexible themselves, a lot of stuff is possible");

OFLOG_TRACE(my_log, "hex numbers? 0x" << STD_NAMESPACE hex << 0x1234 << " and decimal numbers "

<< STD_NAMESPACE dec << 0x1234 << " are no problem at all");

Configuration de la journalisation

Bien que le code ci-dessus fonctionne tel quel, le résultat n'est ni élégant ni flexible. Pour configurer oflog à l'aide de OFCommandLine, vous pouvez procéder comme suit :

// This is just an example

cmd.addGroup("general options:", LONGCOL, SHORTCOL);

// You own options here, e.g. --version

cmd.addOption("--version", "print version information and exit", OFCommandLine::AF_Exclusive);

// This call adds all of oflog's options, e.g. --debug and --quiet

OFLog::addOptions(cmd);

Après avoir appelé OFConsoleApplication::parseCommandLine(), oflog peut être configuré en un seul appel :

OFLog::configureFromCommandLine(cmd, app);

C'est tout ce qui est nécessaire pour configurer le logger et disposer d'options comme –verbose et –log-config.

Vous pouvez également utiliser OFLog::configure(), mais cette approche n'offre pas la flexibilité de –log-level et –log-config.

Le motif par défaut des messages de journalisation est "%P: %m%n", c'est-à-dire le premier caractère du niveau de journalisation (par exemple "D" pour debug ou "E" pour error), un deux-points, le message et un saut de ligne.