FBLOG_TRACE() Нет записи в лог-файл - FBLOG_INFO() ведение журнала в порядке - В чем разница

FIREBREATH 1.6 - VC2010 - Нет записи с FBLOG_TRACE("StaticInitialize()", "INIT-trace");

настройки

outMethods.push_back(std::make_pair(FB::Log::LogMethod_File, "U:/logs/PT.log")); ... FB::Log::LogLevel getLogLevel(){ return FB::Log::LogLevel_Trace; ...


изменение "FBLOG_TRACE" на "FBLOG_INFO", ведение журнала в Logfile работает. Я не понимаю причину.

2 ответа

Решение

Функция не вставлена ​​в соответствующую область

FB::Log::LogLevel getLogLevel(){
    return FB::Log::LogLevel_Trace; // Now Trace and above is logged.
}

Логирование здесь.

Включение ведения журнала...

  1. восстановить ваш проект, используя сценарии prep *

  2. откройте Factory.cpp в вашем проекте. Вам нужно определить следующую функцию внутри определения класса для PluginFactory:

...

Об уровнях журнала

...

Если вы хотите изменить уровень журнала, вам нужно определить следующее в вашем Factory.cpp:

Ссылаясь на выше, это означает, что где-то в "Factory.cpp". это неправильно. Описание должно сказать ->

Если вы хотите изменить уровень журнала, вам нужно определить следующую функцию внутри определения класса для PluginFactory:

Я перетаскиваю его из нижней части "Factory.cpp" внутрь Class PluginFactory.Теперь все работает как положено!!!

Вся цель наличия разных уровней журнала (FBLOG_FATAL, FBLOG_ERROR, FBLOG_WARN, FBLOG_INFO, FBLOG_DEBUG, FBLOG_TRACE) состоит в том, чтобы вы могли настроить, какой уровень использовать, а все, что ниже этого уровня, скрыто. Уровень журнала по умолчанию в FireBreath - FB::Log::LogLevel_Info, что означает, что ничего ниже INFO (например, DEBUG или TRACE) не будет видно.

Вы можете изменить это путем переопределения FB::FactoryBase::getLogLevel() в вашем классе Factory для возврата FB::Log::LogLevel_Trace.

Метод, который вы должны переопределить: https://github.com/firebreath/FireBreath/blob/master/src/PluginCore/FactoryBase.cpp#L78

Определение перечисления LogLevel: https://github.com/firebreath/FireBreath/blob/master/src/ScriptingCore/logging.h#L69

Была версия FireBreath, в которой это не работало; Я думаю, что это было исправлено 1.6.0, но я точно не помню. Если это не сработает, попробуйте обновить до последней версии ветки 1.6 (которая на момент написания статьи была 1.6.1, но я еще не удосужился выпустить)

Другие вопросы по тегам