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」に変更すると、Logfile へのロギングが機能します。理由がわかりません。

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」の下からクラス 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 に答える