これに対する答えは、ライブラリのダウンロードに含まれる FAQ ファイルにあります。次のヘッダーを持つ固定バックエンド DLL があり、ログ ファイルにクラス、関数、および行番号を含めることができます。
#include <pantheios/pantheios.hpp>
#include <pantheios/frontends/fe.N.h>
//#include <pantheios/frontends/fe.simple.h>
#ifndef PANTHEIOS_INCL_PANTHEIOS_H_TRACE
#define PANTHEIOS_TRACE_PREFIX __FILE__ "(" PANTHEIOS_STRINGIZE(__LINE__) "): " __FUNCTION__ ": "
#endif /* PANTHEIOS_INCL_PANTHEIOS_H_TRACE */
#include <pantheios/trace.h>
#include <pantheios/inserters.hpp>
#include <pantheios/backends/bec.file.h> // be.file header
ここで起こっていることは、上記で示したように、trace.h を含める前に PANTHEIOS_TRACE_PREFIX を再定義する必要があるということです。他のコード行は、#define の行先を示すためだけに含まれています。そして返信が遅くなり申し訳ありません。必要に応じて、固定バックエンド DLL プロジェクトをダウンロードしてブログに投稿できます。このプロジェクトは、単純なファイル ベースのログ記録用のソリューションで誰でも使用できます。そのプロジェクトに興味がある場合はコメントを残してください
Update 2/28/2010 12:53 AM CST: 参考までに、FAQ からの質問を次に示します。
Q9: 「Pantheios は、次のような関数を含むログ メッセージを生成する構成を提供しますか?
log(informational, __FUNCTION__, ": my message");
それを書く必要はありません (またはコンパイラのサポートをチェックするラッパー)。" [2008 年 3 月 15 日]
A9: PANTHEIOS_TRACE_PREFIX を必要に応じて #define する必要があります。デフォルトでは__FILE__ "(" PANTHEIOS_STRINGIZE(__LINE__) "): "
、フォーマットを与える です。<file>(<line>):
関数を含めるには、形式を持たせたいと言うことができます<file>(<line>): <func>:
。これを実現するには、次のように定義します。
#include <pantheios/pantheios.h>
#define PANTHEIOS_TRACE_PREFIX __FILE__ " " PANTHEIOS_STRINGIZE(__LINE__) ": " __FUNCTION__ ": "
#include <pantheios/trace.h>
pantheios/trace.h を含める前に定義する必要があることに注意してください。したがって、これを行うより安全な方法は次のとおりです。
/* File: myPantheiosRootHeader.h */
#include <pantheios/pantheios.h>
#ifdef PANTHEIOS_INCL_PANTHEIOS_H_TRACE
# error pantheios/trace.h must not be included before myPantheiosRootHeader.h
#endif /* PANTHEIOS_INCL_PANTHEIOS_H_TRACE */
#define PANTHEIOS_TRACE_PREFIX __FILE__ " " PANTHEIOS_STRINGIZE(__LINE__) ": " __FUNCTION__ ": "
#include <pantheios/trace.h>