log4cplusのカスタムレイアウトを作成するにはどうすればよいですか

DragonTux

長すぎると感じるものを検索した後、stackoverflowでこの簡単な質問をすることにしました:log4cplus(1.1.2)のカスタムレイアウトを作成するにはどうすればよいですか?最も近い関連する質問は、log4cplusにカスタムフィルターを追加するにどうすればよいですか?ここで、作成者は新しいクラスをlog4cplusディレクトリに直接追加します(またはlog4cplus名前空間を使用しますか?)。log4plusヘッダーとライブラリは独立してインストールされるため、このオプションはありません(また、名前空間をlog4cplusに設定するだけでも機能しません。

私が試したのは、log4cplus :: PatternLayoutから継承する最小限の例です:

namespace myNameSpace {
  class LOG4CPLUS_EXPORT MyPatternLayout: public ::log4cplus::PatternLayout {
    public:
       MyPatternLayout(const log4cplus::tstring& pattern);
       MyPatternLayout(const log4cplus::helpers::Properties& properties);
      ~MyPatternLayout();
    private:
      // Disallow copying of instances of this class
      MyPatternLayout(const MyPatternLayout&);
      MyPatternLayout& operator=(const MyPatternLayout&);
};
}

LOG4CPLUS_EXPORTがクラスをlog4cplusフレームワークに登録して、構成ファイルで使用できるようにすることを期待しています。ただし、追加

log4cplus.appender.STDOUT.layout=myNameSpace::MyPatternLayout

エラーが発生します:

log4cplus:ERROR Cannot find LayoutFactory: "myNameSpace::MyPatternLayout"

では、カスタムレイアウト/アペンダーを登録するにはどうすればよいですか?

DragonTux

多くのことを試した後、それはlog4cplus::initialize();前後に置かれなければならない1つの単純なエントリに要約されlog4cplus::PropertyConfigurator::doConfigure("<path to config file");ます。log4cplus名前空間に新しいレイアウトを追加したい場合は、簡単にできます

//example1
log4cplus::initialize();
// register our stuff
log4cplus::spi::LayoutFactoryRegistry& reg = log4cplus::spi::getLayoutFactoryRegistry();
LOG4CPLUS_REG_LAYOUT(reg, MyPatternLayout);
log4cplus::PropertyConfigurator::doConfigure(Logger::mConfigFile);

または、独自の名前空間を使用する場合

 //example2
 log4cplus::initialize();
 // register our stuff
 log4cplus::spi::LayoutFactoryRegistry& reg = log4cplus::spi::getLayoutFactoryRegistry();
 LOG4CPLUS_REG_PRODUCT (reg, "myNamespace::", MyPatternLayout, myNamespace::, log4cplus::spi::LayoutFactory);
 log4cplus::PropertyConfigurator::doConfigure(Logger::mConfigFile);

その後、構成のレイアウトを次のように使用できます。

log4cplus.appender.STDOUT.layout = log4cplus::MyPatternLayout #example 1

または

log4cplus.appender.STDOUT.layout = myNamespace::MyPatternLayout #example 2

簡単ですよね?log4cplusに.log4jに近いドキュメントがあればいいのにと思います

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

log4cplusを使用してローカルシステム時刻を印刷するにはどうすればよいですか?

分類Dev

Androidでカスタム通知レイアウトを作成するにはどうすればよいですか?

分類Dev

LayoutAttributesForDecorationViewでカスタムレイアウト属性を作成するにはどうすればよいですか?

分類Dev

log4cplusアペンダー出力をメモリバッファーに送信するにはどうすればよいですか?

分類Dev

imageviewとtextandroidでカスタムの曲がったレイアウトを作成するにはどうすればよいですか?

分類Dev

次のレイアウトのカスタムビューを作成するにはどうすればよいですか?

分類Dev

新規ユーザー専用のカスタム開始レイアウトを作成するにはどうすればよいですか?

分類Dev

Linux用のカスタムキーボードレイアウトを作成するにはどうすればよいですか?

分類Dev

ウェイトを使用してカスタムレイアウトを作成するにはどうすればよいですか?

分類Dev

スワイプされたRecyclerViewアイテムの下にカスタムレイアウトを表示するにはどうすればよいですか?

分類Dev

WPBakeryでvc_col-sm-5およびvc_col-sm-7カスタムレイアウトを作成するにはどうすればよいですか?

分類Dev

リサイクラービューでカスタムドロワーレイアウトを作成するにはどうすればよいですか?

分類Dev

OS Xでカスタムキーボードレイアウトを作成するにはどうすればよいですか?

分類Dev

Unicodeシンボルを組み合わせてカスタムxkbレイアウトを作成するにはどうすればよいですか?

分類Dev

ステータスバーの通知の上にカスタムレイアウトを追加するにはどうすればよいですか?

分類Dev

メインレイアウトでカスタムレイアウトを表示するにはどうすればよいですか?

分類Dev

スコアカードタイプのレイアウトCardViewを作成するにはどうすればよいですか?

分類Dev

カスタムキーボードレイアウトを作成するにはどうすればよいですか?

分類Dev

カスタムキーボードレイアウトを作成するにはどうすればよいですか?

分類Dev

一部の特定のレイアウトにのみカスタムレンダラーを追加するにはどうすればよいですか?

分類Dev

Whatsappのようなタブレイアウト内にカウンターを作成するにはどうすればよいですか?

分類Dev

タイムアウトするスレッドを中断するにはどうすればよいですか?

分類Dev

カスタム設定レイアウトのimageviewをプログラムで変更するにはどうすればよいですか?

分類Dev

カスタムレイアウトでUICollectionViewの表示セルへのスクロールを修正するにはどうすればよいですか?

分類Dev

矢印タイプのレイアウトを作成するにはどうすればよいですか?

分類Dev

コードによってカスタムビューレイアウトの向きを変更するにはどうすればよいですか?

分類Dev

カスタムフォントアイコンを作成するにはどうすればよいですか?

分類Dev

Android Studioのレイアウトエディターでカスタム解像度を使用するにはどうすればよいですか?

分類Dev

Angular 2+のローカルストレージのタイムアウトを設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    log4cplusを使用してローカルシステム時刻を印刷するにはどうすればよいですか?

  2. 2

    Androidでカスタム通知レイアウトを作成するにはどうすればよいですか?

  3. 3

    LayoutAttributesForDecorationViewでカスタムレイアウト属性を作成するにはどうすればよいですか?

  4. 4

    log4cplusアペンダー出力をメモリバッファーに送信するにはどうすればよいですか?

  5. 5

    imageviewとtextandroidでカスタムの曲がったレイアウトを作成するにはどうすればよいですか?

  6. 6

    次のレイアウトのカスタムビューを作成するにはどうすればよいですか?

  7. 7

    新規ユーザー専用のカスタム開始レイアウトを作成するにはどうすればよいですか?

  8. 8

    Linux用のカスタムキーボードレイアウトを作成するにはどうすればよいですか?

  9. 9

    ウェイトを使用してカスタムレイアウトを作成するにはどうすればよいですか?

  10. 10

    スワイプされたRecyclerViewアイテムの下にカスタムレイアウトを表示するにはどうすればよいですか?

  11. 11

    WPBakeryでvc_col-sm-5およびvc_col-sm-7カスタムレイアウトを作成するにはどうすればよいですか?

  12. 12

    リサイクラービューでカスタムドロワーレイアウトを作成するにはどうすればよいですか?

  13. 13

    OS Xでカスタムキーボードレイアウトを作成するにはどうすればよいですか?

  14. 14

    Unicodeシンボルを組み合わせてカスタムxkbレイアウトを作成するにはどうすればよいですか?

  15. 15

    ステータスバーの通知の上にカスタムレイアウトを追加するにはどうすればよいですか?

  16. 16

    メインレイアウトでカスタムレイアウトを表示するにはどうすればよいですか?

  17. 17

    スコアカードタイプのレイアウトCardViewを作成するにはどうすればよいですか?

  18. 18

    カスタムキーボードレイアウトを作成するにはどうすればよいですか?

  19. 19

    カスタムキーボードレイアウトを作成するにはどうすればよいですか?

  20. 20

    一部の特定のレイアウトにのみカスタムレンダラーを追加するにはどうすればよいですか?

  21. 21

    Whatsappのようなタブレイアウト内にカウンターを作成するにはどうすればよいですか?

  22. 22

    タイムアウトするスレッドを中断するにはどうすればよいですか?

  23. 23

    カスタム設定レイアウトのimageviewをプログラムで変更するにはどうすればよいですか?

  24. 24

    カスタムレイアウトでUICollectionViewの表示セルへのスクロールを修正するにはどうすればよいですか?

  25. 25

    矢印タイプのレイアウトを作成するにはどうすればよいですか?

  26. 26

    コードによってカスタムビューレイアウトの向きを変更するにはどうすればよいですか?

  27. 27

    カスタムフォントアイコンを作成するにはどうすればよいですか?

  28. 28

    Android Studioのレイアウトエディターでカスタム解像度を使用するにはどうすればよいですか?

  29. 29

    Angular 2+のローカルストレージのタイムアウトを設定するにはどうすればよいですか?

ホットタグ

アーカイブ