1

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”记录到日志文件有效。我不明白原因。

4

2 回答 2

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 内部。 现在它按预期工作!

于 2012-04-16T19:05:25.467 回答
1

具有不同日志级别(FBLOG_FATAL、FBLOG_ERROR、FBLOG_WARN、FBLOG_INFO、FBLOG_DEBUG、FBLOG_TRACE)的全部目的是为了让您可以配置要使用的级别,并且隐藏低于该级别的任何内容。FireBreath 中的默认日志级别是 FB::Log::LogLevel_Info,这意味着 INFO 之下的任何内容(例如 DEBUG 或 TRACE)都将不可见。

您可以通过在 Factory 类中覆盖 FB::FactoryBase::getLogLevel() 来更改此设置以返回 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,但我还没有时间发布)

于 2012-04-16T14:31:27.480 回答