Использование Poco :: Logger для всего проекта

AutoPtr<SplitterChannel> splitterChannel(new SplitterChannel());

AutoPtr<Channel> consoleChannel(new ConsoleChannel());
AutoPtr<Channel> fileChannel(new FileChannel("Arcanite.log"));
AutoPtr<FileChannel> rotatedFileChannel(new FileChannel("Arcanite_R.log"));

rotatedFileChannel->setProperty("rotation", "100");
rotatedFileChannel->setProperty("archive", "timestamp");

splitterChannel->addChannel(consoleChannel);
splitterChannel->addChannel(fileChannel);
splitterChannel->addChannel(rotatedFileChannel);

//"%d-%m-%Y %H:%M:%S: %t"AutoPtr<Formatter> formatter(new PatternFormatter("%d-%m-%Y %H:%M:%S %s: %t"));
AutoPtr<Channel> formattingChannel(new FormattingChannel(formatter, splitterChannel));Logger& sLog = Logger::create("LogChan", formattingChannel, Message::PRIO_TRACE);

Я написал свой логгер, который я хочу использовать для своего сервера, в нескольких классах. Как я могу адаптировать это, чтобы сделать это? Это, вероятно, базовый C ++, но я, кажется, пропустил несколько уроков: P

3

Решение

Класс Poco :: Logger работает как каркас регистрации.

Когда вы определяете экземпляр логгера с фиксированным именем (в вашем примере «LogChan»), он доступен для всех ваших классов. Так что вы должны сделать

Logger& logger = Logger::get("logChan");

из других ваших классов, чтобы получить ссылку на регистратор.

Я предполагаю, что ниже он использует шаблон синглтона для генерации пула регистраторов.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]