oflog: uma biblioteca de registro de log baseada em log4cplus
Este módulo contém classes usadas para fins de registro de log. Essa biblioteca é baseada no log4cplus.
As principais classes são (em ordem alfabética):
- OFLog
- OFLogger
- dcmtk::log4cplus::ConsoleAppender
- dcmtk::log4cplus::FileAppender
- dcmtk::log4cplus::PatternLayout
Arquivos
Os arquivos a seguir fornecem exemplos de configuração e documentação adicional:
Exemplos
O exemplo a seguir mostra como usar o oflog em um aplicativo de console.
O registro de log em si
Primeiro precisamos dos cabeçalhos e definições necessários:
// 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");
Isso é tudo o que é necessário para criar instruções de registro de log. Agora você pode usar qualquer uma das macros a seguir para gerar entradas de log:
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");
Configuração do registro de log
Embora o código acima funcione por si só, o resultado não é bonito nem flexível. Para configurar o oflog com a ajuda de OFCommandLine, você pode fazer algo assim:
// 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);
Depois de chamar OFConsoleApplication::parseCommandLine(), o oflog pode ser configurado com uma única chamada:
OFLog::configureFromCommandLine(cmd, app);
Isso é tudo o que é necessário para configurar o logger e disponibilizar opções como –verbose e –log-config.
Alternativamente, você pode usar OFLog::configure(), mas essa abordagem não oferece a flexibilidade de –log-level e –log-config.
O formato padrão das mensagens de log é "%P: %m%n", ou seja, o primeiro caractere do nível de log (por exemplo, "D" para debug ou "E" para error), dois-pontos, a mensagem e uma quebra de linha.