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

jp.ossc.nimbus.service.log.GroupCategoryServiceは、複数のLogCategoryに同時に出力するLogCategory実装サービスです。

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

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

下位サービスインタフェース用途
jp.ossc.nimbus.service.log.LogCategory出力する

以下にファイルとコンソールに同時に出力するサービス定義を示します。

  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. <!-- ログ出力先となるCategoryサービスのサービス名を設定する -->
  11. <attribute name="CategoryServiceNames">#Category</attribute>
  12. <!-- ログメッセージを提供するMessageRecordFactoryサービスのサービス名を設定する -->
  13. <attribute name="MessageRecordFactoryServiceName">#MessageRecordFactory</attribute>
  14. <depends>Category</depends>
  15. <depends>MessageRecordFactory</depends>
  16. </service>
  17. <!-- 複数のカテゴリをグルーピングするCategoryサービス -->
  18. <service name="Category"
  19. code="jp.ossc.nimbus.service.log.GroupCategoryService">
  20. <!-- カテゴリ名を設定する -->
  21. <attribute name="CategoryName">Sample</attribute>
  22. <!-- グルーピングするLogCategoryサービスのサービス名を設定する -->
  23. <attribute name="CategoryServiceNames">
  24. #ConsoleCategory
  25. #FileCategory
  26. </attribute>
  27. <!-- 出力レベルに対するラベルを設定する。
  28. 出力レベル数値範囲最小値:出力レベル数値範囲最大値=ラベル
  29. のフォーマットで複数指定する。
  30. -->
  31. <attribute name="Labels">
  32. 0:9=DEBUG
  33. 10:19=INFO
  34. 20:29=WARN
  35. 30:39=ERROR
  36. 40:49=FATAL
  37. </attribute>
  38. <depends>
  39. <!-- コンソールへのログ出力先となるCategoryサービス -->
  40. <service name="ConsoleCategory"
  41. code="jp.ossc.nimbus.service.log.SimpleCategoryService">
  42. <attribute name="CategoryName">Sample</attribute>
  43. <attribute name="PriorityRange">20:49</attribute>
  44. <attribute name="MessageWriterServiceName">#ConsoleMessageWriter</attribute>
  45. <attribute name="WritableRecordFactoryServiceName">#ConsoleWritableRecordFactory</attribute>
  46. <depends>
  47. <service name="ConsoleMessageWriter"
  48. code="jp.ossc.nimbus.service.writer.ConsoleWriterService"/>
  49. </depends>
  50. <depends>
  51. <service name="ConsoleWritableRecordFactory"
  52. code="jp.ossc.nimbus.service.log.LogWritableRecordFactoryService">
  53. <attribute name="Format">[%CODE%,%PRIORITY%]%MESSAGE%</attribute>
  54. </service>
  55. </depends>
  56. </service>
  57. </depends>
  58. <depends>
  59. <!-- ファイルへのログ出力先となるCategoryサービス -->
  60. <service name="FileCategory"
  61. code="jp.ossc.nimbus.service.log.SimpleCategoryService">
  62. <attribute name="CategoryName">Sample</attribute>
  63. <attribute name="PriorityRange">0:49</attribute>
  64. <attribute name="MessageWriterServiceName">#FileMessageWriter</attribute>
  65. <attribute name="WritableRecordFactoryServiceName">#FileWritableRecordFactory</attribute>
  66. <depends>
  67. <service name="FileMessageWriter"
  68. code="jp.ossc.nimbus.service.writer.log4j.FileAppenderWriterService">
  69. <attribute name="File">sample.log</attribute>
  70. </service>
  71. </depends>
  72. <depends>
  73. <service name="FileWritableRecordFactory"
  74. code="jp.ossc.nimbus.service.log.LogWritableRecordFactoryService">
  75. <attribute name="Format">[%DATE%][%PRIORITY%][%CODE%] %MESSAGE%</attribute>
  76. <attribute name="DateFormat">yyyy/MM/dd HH:mm:ss</attribute>
  77. </service>
  78. </depends>
  79. </service>
  80. </depends>
  81. </service>
  82. <!-- ログメッセージを提供するMessageRecordFactoryサービス -->
  83. <service name="MessageRecordFactory"
  84. code="jp.ossc.nimbus.service.message.MessageRecordFactoryService">
  85. <attribute name="MessageRecordClassName">jp.ossc.nimbus.service.log.LogMessageRecordImpl</attribute>
  86. <attribute name="MessageFiles">MyMessage</attribute>
  87. </service>
  88. </manager>
  89. </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