LoginSignup
2
2

More than 5 years have passed since last update.

log4cxx.properties の設定方法

Posted at

log4cxx のコンセプト

Logger (ログ実行)

  • Logger とは? ログ記録に使うオブジェクト。com.foo や com.foo.Bar のような階層的な名前を持つ。
    • お薦めはログ対象のクラスと同じ名前をつける。
  • 最上階の Logger を Root Logger と呼ぶ。
  • 各 Logger は DEBUG, INFO 等の level を持てる。level を指定していない Logger の level は親 Logger と同じになる。
  • Root Logger は必ず level を持つ。
  • ログ要求は LOG4CXX_DEBUG(Logger, ...) のようなマクロを使う。
    • ログ要求に指定された level が Logger の level 以上の時だけログが実行される。
    • つまり、Logger に記録する level を指定する。

Appender (ログ出力)

  • Appender とは? ログを出力するオブジェクト
  • addAppender で Appender に Logger を追加する。
  • additivity flag == true の時、子の Logger が送ったログは親の Logger の Appender にも送られる。
  • additivity flag == false の時、子の Logger が送ったログは親の Logger の Appender に送られない。

設定

  • logger4cxx::PropertyConfigurator::configure(設定ファイル名) を使うとファイルでログの設定が出来る。
  • BasicConfigurator も PropertyConfigurator も無い場合
    • 環境変数 LOG4CXX_CONFIGURATION があればそのファイル名を設定ファイルとみなす。
    • なければ "log4cxx.xml", "log4cxx.properties", "log4j.xml" and "log4j.properties" を検索して設定ファイルとみなす。
    • なければログをしない。

ConversionPattern で出力フォーマットを指定出来る。

  • %-5p: level を 5 文字左寄せ
  • %d{dd MMM yyyy HH:mm:ss,SSS}: タイムスタンプ
  • %t: スレッド名
  • %c: Logger の名前
  • %F: ファイル名
  • %L: 行番号
  • %M: メソッド
  • %m: メッセージ
  • %n: 改行

設定例1

log4j.appender.SmartDeviceLinkCoreLogFile.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%t][%c] %F:%L %M: %m%n

出力例2

TRACE [31 Oct 2017 18:54:29,905][0x7fe1fd6dc740][Utils] /home/tyamamiya/src/sdl_core/src/components/utils/src/threads/posix_thread.cc:160 Thread::start: Enter

設定例1

log4j.appender.SmartDeviceLinkCoreLogFile.layout.ConversionPattern=%-5p [%d{HH:mm:ss}] %.32F:%L %m%n

出力例2

TRACE [12:59:03] tion_manager/src/request_info.cc:178 Enter

Appender ごとにレベルを変えたい場合は Threshold を使う。

log4j.appender.SmartDeviceLinkCoreLogFile.Threshold=DEBUG

参考:
* How to use log4cxx?
* Short introduction to Apache log4cxx」への補足
* 基本のAppdender

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2