LogCategory実装サービス jp.ossc.nimbus.service.log.SimpleCategoryService

jp.ossc.nimbus.service.log.SimpleCategoryServiceは、LogServiceがログ出力項目を含むMapを出力依頼するLogCategory実装サービスです。

jp.ossc.nimbus.service.writer.SimpleCategoryServiceの拡張クラスで、カテゴリ名、出力レベルとラベルのマッピング、出力レベルの有効範囲を定義する事ができます。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.writer.WritableRecordFactory入力をjp.ossc.nimbus.service.writer.WritableRecordにフォーマットする。実装サービスとして、ログ出力専用のLogWritableRecordFactoryServiceを使用します。
jp.ossc.nimbus.service.writer.MessageWriterjp.ossc.nimbus.service.writer.WritableRecordを出力する

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- ログ出力を行うLoggerサービス -->
  8. <service name="Logger"
  9. code="jp.ossc.nimbus.service.log.LogService">
  10. <!-- ログ出力先となるLogCategoryサービスのサービス名を設定する -->
  11. <attribute name="CategoryServiceNames">#LogCategory</attribute>
  12. <!-- ログメッセージを提供するMessageRecordFactoryサービスのサービス名を設定する -->
  13. <attribute name="MessageRecordFactoryServiceName">#MessageRecordFactory</attribute>
  14. <depends>Category</depends>
  15. <depends>MessageRecordFactory</depends>
  16. </service>
  17. <!-- ログ出力先となるLogCategoryサービス -->
  18. <service name="LogCategory"
  19. code="jp.ossc.nimbus.service.log.SimpleCategoryService">
  20. <!-- カテゴリ名を設定する -->
  21. <attribute name="CategoryName">Sample</attribute>
  22. <!-- 出力レベルに対するラベルを設定する。
  23. 出力レベル数値範囲最小値:出力レベル数値範囲最大値=ラベル
  24. のフォーマットで複数指定する。
  25. -->
  26. <attribute name="Labels">
  27. 0:9=DEBUG
  28. 10:19=INFO
  29. 20:29=WARN
  30. 30:39=ERROR
  31. 40:49=FATAL
  32. </attribute>
  33. <!-- 有効な出力レベル数値の範囲を設定する
  34. INFOからFATALまで出力する
  35. -->
  36. <attribute name="PriorityRange">10:49</attribute>
  37. <!-- このカテゴリへの出力を行うMessageWriterサービスのサービス名を設定する -->
  38. <attribute name="MessageWriterServiceName">#ConsoleMessageWriter</attribute>
  39. <!-- このカテゴリへの出力フォーマットを提供するWritableRecordFactoryサービスのサービス名を設定する -->
  40. <attribute name="WritableRecordFactoryServiceName">#ConsoleWritableRecordFactory</attribute>
  41. <depends>
  42. <!-- コンソールに出力するMessageWriterサービス -->
  43. <service name="ConsoleMessageWriter"
  44. code="jp.ossc.nimbus.service.writer.ConsoleWriterService"/>
  45. </depends>
  46. <depends>
  47. <!-- 出力フォーマットを提供するWritableRecordFactoryサービス -->
  48. <service name="ConsoleWritableRecordFactory"
  49. code="jp.ossc.nimbus.service.log.LogWritableRecordFactoryService">
  50. <attribute name="Format">%DATE% [%CODE%,%PRIORITY%]%MESSAGE%</attribute>
  51. <attribute name="DateFormat">yyyy/MM/dd HH:mm:ss</attribute>
  52. </service>
  53. </depends>
  54. </service>
  55. <!-- ログメッセージを提供するMessageRecordFactoryサービス -->
  56. <service name="MessageRecordFactory"
  57. code="jp.ossc.nimbus.service.message.MessageRecordFactoryService">
  58. <attribute name="MessageRecordClassName">jp.ossc.nimbus.service.log.LogMessageRecordImpl</attribute>
  59. <attribute name="MessageFiles">MyMessage</attribute>
  60. </service>
  61. </manager>
  62. </server>

MyMessage.def

APL_001,Good morning!,0,Sample
APL_002,Good afternoon\\, @0!,10,Sample
APL_003,Good evening\\, @0 and @1!,20,Sample
APL_004,Good night\\, #0 and @1!,30,Sample
APL_005,Bye @0!,40,Sample


ログ/LogCategory