問題タブ [log4cplus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
277 参照

log4cplus - 切り捨てて上書きするのではなく、FileAppender をファイルに追加しようとしています

OK、log4cplus を使ってログをファイルに記録しました。プログラムが再起動したときに、上書きするのではなく、単純に追加したいのです。

私はこれを試しました: log4cplus::SharedAppenderPtr myAppender(new log4cplus::FileAppender "myLogFile.log",std::ios_base::ate));

しかし、それでも切り捨てられて上書きされました。

Rolling または Daily FileAppenders を使用したくありません (少なくとも)。

ありがとう、-g

0 投票する
1 に答える
816 参照

c++ - スレッド名はlog4cplusでどのように設定されていますか?

Linux でマルチスレッド C++ アプリケーションの log4cplus を評価しています。TTCCLayout と PatternLayout を使用すると、スレッド名を表示できます。私のテストでは、名前はなく、意味のない数字だけでした。log4cplus のスレッド クラスは使用していません。log4cplus はこのスレッド名をどのように決定し、自分で設定することは可能ですか?

0 投票する
1 に答える
1054 参照

logging - Apache log4cxx と log4cplus の主な違い

これらの C++ ロガーを利用できるアプリをビルドする必要があります。私は両方のロガー (Apache log4cxx と log4cplus) を調べています。2 つの違いを知りたいです。私が見たことの1つは、APR(Apache Portable Runtime)を利用するApache log4cxxです。

では、この 2 つの違いを誰か教えてもらえますか?

0 投票する
1 に答える
201 参照

c++ - 重複したメッセージがログに記録される理由

私はlog4cplusが初めてです。私は次の構成を持っています:

次のコードをロードします。

問題なくロードされますが、何かをログに記録するたびに、ログに 2 つのメッセージが表示されます。たとえば、次のコードを使用してログに記録します。

ログに表示される内容は次のとおりです。

なぜこれが起こっているのですか?

0 投票する
2 に答える
2293 参照

c++ - log4cplus を使用してログ ファイルにメソッド名を出力する方法

log4cplus でラッパー ライブラリを作成しました。私のライブラリにはLogMessage、ログメッセージを保存するために log4cplus ライブラリ関数を呼び出している関数があります。

例えば。アプリケーション.cpp

mylibrary.cpp

私のアプリケーションから、関数名も渡したいと思います。

例えば。アプリケーション.cpp

このログ メッセージをコンソール画面に出力するにはどうすればよいですか? 以下の関数は、ファイルと行番号のみを引数として取ります。また、関数名も出力したいと思います。

更新: 申し訳ありませんが、PrintLogMessage で LogMessage 関数を #define したことを忘れていました

だから私が使用しているアプリケーションでは、この行だけを書く必要があります

アプリケーション.cpp

そして、私は同様の種類を書きたい

機能性のために__FUNCTION__。ユーザーが毎回FILELINEFUNCTIONを書きたくない。

0 投票する
1 に答える
677 参照

logging - log4cplusを使用してローカルシステム時間を出力するには?

PatternLayoutを使用するかどうかを選択する%d{%m/%d/%y %H:%M:%S}と、現在の日付と時刻が表示されます。時間はUTCフォーマットに準じます。

私の要件は、ローカルシステム時間に従って時間を表示することです。

アップデート:

ローカルシステム時間に従って時間を表示するtimehelper.h方法は1つありますか?Time::localtime

0 投票する
1 に答える
1649 参照

c++ - VS2012 で使用した場合の log4cplus リンク エラー

VS2012 で log4cplus をダウンロードしてコンパイルしました。コンパイルは問題ありませんでした (デバッグとリリースの両方) コードで使用しようとしましたが、3 つのリンク エラーが発生しました。log4cplus プロジェクトの同じインクルードと、コンパイルしたライブラリを使用しています (3 つすべてを試しました... デバッグ リリースと log4cplusS.lib

私はまだこれらを取得します:

エラー LNK2019: 未解決の外部シンボル "__declspec(dllimport) クラス std::basic_ostringstream、クラス std::allocator > & __cdecl log4cplus::detail::get_macro_body_oss(void)" (_ imp ?get_macro_body_oss@detail@log4cplus@@YAAAV?$ basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ) 関数で参照される "int __cdecl Prepare(class std::basic_string,class std::allocator > &,class std::basic_string,class std::allocator > &,class std::basic_string,class std::allocator > &,int *,int *,int *)" (?Prepare@@YAHAAV?$basic_string@DU?$ char_traits@D@std@@V?$allocator@D@2@@std@@00PAH11@Z)

エラー LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string,class std::allocator > const &)" (_ imp ?getInstance@関数 "int __cdecl Prepare(class std ::basic_string,class std::allocator > &,class std::basic_string,class std::allocator > &,class std::basic_string,class std::allocator > &,int *,int *,int *)" (?Prepare@@YAHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00PAH11@Z)

なにが問題ですか?

私のコードは単純で、dll cpp では次のようになります。

追加したcppの上部に

私が追加した関数の1つで:

0 投票する
1 に答える
1275 参照

c++ - DLL で Log4Cplus を使用する方法

DLL で Log4Cplus を使用するベスト プラクティスは何ですか?

FileAppender を使用したい。

DLLMain と 3 つのエクスポートされた関数を持つ win32 DLL があります。

Appender と Layout オブジェクトはどこで定義しますか? プロパティをどこに設定しますか? それらを logger にリンクする場所は?

呼び出すだけで推測するdll内のすべてのクラスでロガーを使用したい:

log4cplus マクロを有効にして、dll 内のすべての関数で動作させるには、どこにコードを配置すればよいですか?

通常のプログラムでは、グローバル変数を使用し、main またはいくつかの ctor を使用してそれらを設定すると、すべてがそれらを見ることができます。dll 内で何をしますか?

(エクスポートされたすべての関数でセットアップ コードを呼び出したくはありませんが、dll が読み込まれたときに 1 回だけ呼び出します)