質問

log4cxx(RollingFileアペンダー)を使用していくつかのファイルにログを記録するc ++アプリケーションがあります。 c#で記述された別のモジュールから同じファイルに同時にログインしたい。そのため、同じファイルを使用するようにlog4netを設定しましたが、新しいメッセージを取得できません。C++ロギングを無効にすると、c#メッセージが表示されます。だから私はそれがロックの問題だと思い、ファイルをロックしないようにlog4cxxに伝える設定オプションを探しました。 log4netのMinimalLockモデルにアクセスしましたが、log4cxxで何も見つかりませんでした。

事前に感謝、

エルネストカレン

役に立ちましたか?

解決

同じファイルに2つの異なるプロセスのログを記録しようとしている限り、どの構成を使用しても、並行性と競合の問題が発生する可能性があると思います。

両方のプロセスから中央の3番目の場所にログイベントを送信することを検討する必要があります- log4netのRemotingAppender では、log4cxxに類似のものがあると想定しています。

他のヒント

質問が非常に古く(回答済みとマークされている)、プロジェクトをすでに終了している場合でも:

log4netとlog4cxxは、互いに認識しない別個のロギングフレームワークであるため、同じファイルに書き込むように設定することはできません。 framworksの1つだけが、書き込み用にファイルを開きます。どちらか早い方です。

同様の状況(log4netを使用してカスタムロギングと新しいc#モジュールを使用するレガシーc ++アプリケーション)で行ったことはトレースを古いロギングフレームワークに転送するカスタムlog4netアペンダーを作成します。私が関わったプロジェクトでは、古いC ++コードには、カスタムアペンダーが使用するログメッセージを書き込むためのWindows COMインターフェイスがありました。

別の方法は、C ++ / CLIを使用してカスタムアペンダーを作成することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top