log4r 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (319) hide show
  1. data/README +2 -2
  2. data/Rakefile +3 -3
  3. data/TODO +0 -34
  4. data/examples/filelog.rb +25 -0
  5. data/examples/logs/TestSize000001.log +576 -0
  6. data/examples/logs/TestSize000002.log +567 -0
  7. data/examples/logs/TestSize000003.log +552 -0
  8. data/examples/logs/TestSize000004.log +552 -0
  9. data/examples/logs/TestSize000005.log +552 -0
  10. data/examples/logs/TestSize000006.log +552 -0
  11. data/examples/logs/TestSize000007.log +552 -0
  12. data/examples/logs/TestSize000008.log +552 -0
  13. data/examples/logs/TestSize000009.log +552 -0
  14. data/examples/logs/TestSize000010.log +552 -0
  15. data/examples/logs/TestSize000011.log +552 -0
  16. data/examples/logs/TestSize000012.log +552 -0
  17. data/examples/logs/TestSize000013.log +552 -0
  18. data/examples/logs/TestSize000014.log +552 -0
  19. data/examples/logs/TestSize000015.log +552 -0
  20. data/examples/logs/TestSize000016.log +552 -0
  21. data/examples/logs/TestSize000017.log +552 -0
  22. data/examples/logs/TestSize000018.log +552 -0
  23. data/examples/logs/TestSize000019.log +535 -0
  24. data/examples/logs/TestSize000020.log +534 -0
  25. data/examples/logs/TestSize000021.log +534 -0
  26. data/examples/logs/TestSize000022.log +534 -0
  27. data/examples/logs/TestSize000023.log +534 -0
  28. data/examples/logs/TestSize000024.log +534 -0
  29. data/examples/logs/TestSize000025.log +534 -0
  30. data/examples/logs/TestSize000026.log +534 -0
  31. data/examples/logs/TestSize000027.log +534 -0
  32. data/examples/logs/TestSize000028.log +534 -0
  33. data/examples/logs/TestSize000029.log +534 -0
  34. data/examples/logs/TestSize000030.log +534 -0
  35. data/examples/logs/TestSize000031.log +534 -0
  36. data/examples/logs/TestSize000032.log +534 -0
  37. data/examples/logs/TestSize000033.log +534 -0
  38. data/examples/logs/TestSize000034.log +534 -0
  39. data/examples/logs/TestSize000035.log +534 -0
  40. data/examples/logs/TestSize000036.log +534 -0
  41. data/examples/logs/TestSize000037.log +534 -0
  42. data/examples/logs/TestSize000038.log +534 -0
  43. data/examples/logs/TestSize000039.log +534 -0
  44. data/examples/logs/TestSize000040.log +534 -0
  45. data/examples/logs/TestSize000041.log +534 -0
  46. data/examples/logs/TestSize000042.log +534 -0
  47. data/examples/logs/TestSize000043.log +534 -0
  48. data/examples/logs/TestSize000044.log +534 -0
  49. data/examples/logs/TestSize000045.log +534 -0
  50. data/examples/logs/TestSize000046.log +534 -0
  51. data/examples/logs/TestSize000047.log +534 -0
  52. data/examples/logs/TestSize000048.log +534 -0
  53. data/examples/logs/TestSize000049.log +534 -0
  54. data/examples/logs/TestSize000050.log +534 -0
  55. data/examples/logs/TestSize000051.log +534 -0
  56. data/examples/logs/TestSize000052.log +534 -0
  57. data/examples/logs/TestSize000053.log +534 -0
  58. data/examples/logs/TestSize000054.log +534 -0
  59. data/examples/logs/TestSize000055.log +534 -0
  60. data/examples/logs/TestSize000056.log +534 -0
  61. data/examples/logs/TestSize000057.log +534 -0
  62. data/examples/logs/TestSize000058.log +534 -0
  63. data/examples/logs/TestSize000059.log +534 -0
  64. data/examples/logs/TestSize000060.log +534 -0
  65. data/examples/logs/TestSize000061.log +534 -0
  66. data/examples/logs/TestSize000062.log +534 -0
  67. data/examples/logs/TestSize000063.log +534 -0
  68. data/examples/logs/TestSize000064.log +534 -0
  69. data/examples/logs/TestSize000065.log +534 -0
  70. data/examples/logs/TestSize000066.log +534 -0
  71. data/examples/logs/TestSize000067.log +534 -0
  72. data/examples/logs/TestSize000068.log +534 -0
  73. data/examples/logs/TestSize000069.log +534 -0
  74. data/examples/logs/TestSize000070.log +534 -0
  75. data/examples/logs/TestSize000071.log +534 -0
  76. data/examples/logs/TestSize000072.log +534 -0
  77. data/examples/logs/TestSize000073.log +534 -0
  78. data/examples/logs/TestSize000074.log +534 -0
  79. data/examples/logs/TestSize000075.log +534 -0
  80. data/examples/logs/TestSize000076.log +534 -0
  81. data/examples/logs/TestSize000077.log +534 -0
  82. data/examples/logs/TestSize000078.log +534 -0
  83. data/examples/logs/TestSize000079.log +534 -0
  84. data/examples/logs/TestSize000080.log +534 -0
  85. data/examples/logs/TestSize000081.log +534 -0
  86. data/examples/logs/TestSize000082.log +534 -0
  87. data/examples/logs/TestSize000083.log +534 -0
  88. data/examples/logs/TestSize000084.log +534 -0
  89. data/examples/logs/TestSize000085.log +534 -0
  90. data/examples/logs/TestSize000086.log +534 -0
  91. data/examples/logs/TestSize000087.log +534 -0
  92. data/examples/logs/TestSize000088.log +534 -0
  93. data/examples/logs/TestSize000089.log +534 -0
  94. data/examples/logs/TestSize000090.log +534 -0
  95. data/examples/logs/TestSize000091.log +534 -0
  96. data/examples/logs/TestSize000092.log +534 -0
  97. data/examples/logs/TestSize000093.log +534 -0
  98. data/examples/logs/TestSize000094.log +534 -0
  99. data/examples/logs/TestSize000095.log +534 -0
  100. data/examples/logs/TestSize000096.log +534 -0
  101. data/examples/logs/TestSize000097.log +534 -0
  102. data/examples/logs/TestSize000098.log +534 -0
  103. data/examples/logs/TestSize000099.log +534 -0
  104. data/examples/logs/TestSize000100.log +534 -0
  105. data/examples/logs/TestSize000101.log +534 -0
  106. data/examples/logs/TestSize000102.log +534 -0
  107. data/examples/logs/TestSize000103.log +534 -0
  108. data/examples/logs/TestSize000104.log +534 -0
  109. data/examples/logs/TestSize000105.log +534 -0
  110. data/examples/logs/TestSize000106.log +534 -0
  111. data/examples/logs/TestSize000107.log +534 -0
  112. data/examples/logs/TestSize000108.log +534 -0
  113. data/examples/logs/TestSize000109.log +534 -0
  114. data/examples/logs/TestSize000110.log +534 -0
  115. data/examples/logs/TestSize000111.log +534 -0
  116. data/examples/logs/TestSize000112.log +534 -0
  117. data/examples/logs/TestSize000113.log +534 -0
  118. data/examples/logs/TestSize000114.log +534 -0
  119. data/examples/logs/TestSize000115.log +534 -0
  120. data/examples/logs/TestSize000116.log +534 -0
  121. data/examples/logs/TestSize000117.log +534 -0
  122. data/examples/logs/TestSize000118.log +534 -0
  123. data/examples/logs/TestSize000119.log +534 -0
  124. data/examples/logs/TestSize000120.log +534 -0
  125. data/examples/logs/TestSize000121.log +534 -0
  126. data/examples/logs/TestSize000122.log +534 -0
  127. data/examples/logs/TestSize000123.log +534 -0
  128. data/examples/logs/TestSize000124.log +534 -0
  129. data/examples/logs/TestSize000125.log +534 -0
  130. data/examples/logs/TestSize000126.log +534 -0
  131. data/examples/logs/TestSize000127.log +534 -0
  132. data/examples/logs/TestSize000128.log +534 -0
  133. data/examples/logs/TestSize000129.log +534 -0
  134. data/examples/logs/TestSize000130.log +534 -0
  135. data/examples/logs/TestSize000131.log +534 -0
  136. data/examples/logs/TestSize000132.log +534 -0
  137. data/examples/logs/TestSize000133.log +534 -0
  138. data/examples/logs/TestSize000134.log +534 -0
  139. data/examples/logs/TestSize000135.log +534 -0
  140. data/examples/logs/TestSize000136.log +534 -0
  141. data/examples/logs/TestSize000137.log +534 -0
  142. data/examples/logs/TestSize000138.log +534 -0
  143. data/examples/logs/TestSize000139.log +534 -0
  144. data/examples/logs/TestSize000140.log +534 -0
  145. data/examples/logs/TestSize000141.log +534 -0
  146. data/examples/logs/TestSize000142.log +534 -0
  147. data/examples/logs/TestSize000143.log +534 -0
  148. data/examples/logs/TestSize000144.log +534 -0
  149. data/examples/logs/TestSize000145.log +534 -0
  150. data/examples/logs/TestSize000146.log +534 -0
  151. data/examples/logs/TestSize000147.log +534 -0
  152. data/examples/logs/TestSize000148.log +534 -0
  153. data/examples/logs/TestSize000149.log +534 -0
  154. data/examples/logs/TestSize000150.log +534 -0
  155. data/examples/logs/TestSize000151.log +534 -0
  156. data/examples/logs/TestSize000152.log +534 -0
  157. data/examples/logs/TestSize000153.log +534 -0
  158. data/examples/logs/TestSize000154.log +534 -0
  159. data/examples/logs/TestSize000155.log +534 -0
  160. data/examples/logs/TestSize000156.log +534 -0
  161. data/examples/logs/TestSize000157.log +534 -0
  162. data/examples/logs/TestSize000158.log +534 -0
  163. data/examples/logs/TestSize000159.log +534 -0
  164. data/examples/logs/TestSize000160.log +534 -0
  165. data/examples/logs/TestSize000161.log +534 -0
  166. data/examples/logs/TestSize000162.log +534 -0
  167. data/examples/logs/TestSize000163.log +534 -0
  168. data/examples/logs/TestSize000164.log +534 -0
  169. data/examples/logs/TestSize000165.log +534 -0
  170. data/examples/logs/TestSize000166.log +534 -0
  171. data/examples/logs/TestSize000167.log +534 -0
  172. data/examples/logs/TestSize000168.log +534 -0
  173. data/examples/logs/TestSize000169.log +534 -0
  174. data/examples/logs/TestSize000170.log +534 -0
  175. data/examples/logs/TestSize000171.log +534 -0
  176. data/examples/logs/TestSize000172.log +534 -0
  177. data/examples/logs/TestSize000173.log +534 -0
  178. data/examples/logs/TestSize000174.log +534 -0
  179. data/examples/logs/TestSize000175.log +534 -0
  180. data/examples/logs/TestSize000176.log +534 -0
  181. data/examples/logs/TestSize000177.log +534 -0
  182. data/examples/logs/TestSize000178.log +534 -0
  183. data/examples/logs/TestSize000179.log +534 -0
  184. data/examples/logs/TestSize000180.log +534 -0
  185. data/examples/logs/TestSize000181.log +534 -0
  186. data/examples/logs/TestSize000182.log +534 -0
  187. data/examples/logs/TestSize000183.log +534 -0
  188. data/examples/logs/TestSize000184.log +534 -0
  189. data/examples/logs/TestSize000185.log +534 -0
  190. data/examples/logs/TestSize000186.log +534 -0
  191. data/examples/logs/TestSize000187.log +312 -0
  192. data/examples/logs/TestTime000001.log +11 -0
  193. data/examples/logs/TestTime000002.log +10 -0
  194. data/examples/logs/TestTime000003.log +10 -0
  195. data/examples/logs/TestTime000004.log +10 -0
  196. data/examples/logs/TestTime000005.log +10 -0
  197. data/examples/logs/TestTime000006.log +10 -0
  198. data/examples/logs/TestTime000007.log +10 -0
  199. data/examples/logs/TestTime000008.log +10 -0
  200. data/examples/logs/TestTime000009.log +10 -0
  201. data/examples/logs/TestTime000010.log +9 -0
  202. data/src/log4r.rb +5 -2
  203. data/src/log4r/GDC.rb +40 -0
  204. data/src/log4r/MDC.rb +59 -0
  205. data/src/log4r/NDC.rb +87 -0
  206. data/src/log4r/formatter/patternformatter.rb +11 -6
  207. data/src/log4r/outputter/bob.patch +25 -0
  208. data/src/log4r/outputter/emailoutputter.rb.orig +118 -0
  209. data/src/log4r/outputter/emailoutputter.rb.rej +46 -0
  210. data/src/log4r/outputter/fileoutputter.rb +12 -5
  211. data/src/log4r/outputter/rollingfileoutputter.rb +8 -3
  212. data/src/log4r/outputter/win32eventoutputter.rb +136 -0
  213. data/src/log4r/rdoc/GDC +14 -0
  214. data/src/log4r/rdoc/MDC +16 -0
  215. data/src/log4r/rdoc/NDC +41 -0
  216. data/src/log4r/rdoc/win32eventoutputter +7 -0
  217. data/src/log4r/repository.rb +73 -52
  218. data/src/log4r/yamlconfigurator.rb +0 -0
  219. data/tests/testGDC.rb +26 -0
  220. data/tests/testMDC.rb +21 -0
  221. data/tests/testNDC.rb +27 -0
  222. data/tests/testthreads.rb +23 -0
  223. metadata +215 -98
  224. data/src/doc/Log4r.html +0 -392
  225. data/src/doc/Log4r/BasicFormatter.html +0 -370
  226. data/src/doc/Log4r/ConfigError.html +0 -207
  227. data/src/doc/Log4r/Configurator.html +0 -1050
  228. data/src/doc/Log4r/DateFileOutputter.html +0 -454
  229. data/src/doc/Log4r/DefaultFormatter.html +0 -205
  230. data/src/doc/Log4r/EmailOutputter.html +0 -636
  231. data/src/doc/Log4r/FileOutputter.html +0 -321
  232. data/src/doc/Log4r/Formatter.html +0 -291
  233. data/src/doc/Log4r/IOOutputter.html +0 -392
  234. data/src/doc/Log4r/Log4rConfig.html +0 -193
  235. data/src/doc/Log4r/Log4rTools.html +0 -370
  236. data/src/doc/Log4r/LogEvent.html +0 -360
  237. data/src/doc/Log4r/LogServer.html +0 -322
  238. data/src/doc/Log4r/Logger.html +0 -1132
  239. data/src/doc/Log4r/Logger/LoggerFactory.html +0 -200
  240. data/src/doc/Log4r/Logger/Repository.html +0 -207
  241. data/src/doc/Log4r/ObjectFormatter.html +0 -262
  242. data/src/doc/Log4r/Outputter.html +0 -910
  243. data/src/doc/Log4r/Outputter/OutputterFactory.html +0 -200
  244. data/src/doc/Log4r/Outputter/consoleoutputters_rb.html +0 -57
  245. data/src/doc/Log4r/Outputter/datefileoutputter_rb.html +0 -93
  246. data/src/doc/Log4r/Outputter/emailoutputter_rb.html +0 -179
  247. data/src/doc/Log4r/Outputter/fileoutputter_rb.html +0 -64
  248. data/src/doc/Log4r/Outputter/iooutputter_rb.html +0 -59
  249. data/src/doc/Log4r/Outputter/outputter_rb.html +0 -222
  250. data/src/doc/Log4r/Outputter/outputterfactory_rb.html +0 -62
  251. data/src/doc/Log4r/Outputter/remoteoutputter_rb.html +0 -59
  252. data/src/doc/Log4r/Outputter/rollingfileoutputter_rb.html +0 -66
  253. data/src/doc/Log4r/Outputter/staticoutputter_rb.html +0 -55
  254. data/src/doc/Log4r/Outputter/syslogoutputter_rb.html +0 -110
  255. data/src/doc/Log4r/Outputter/tst_rb.html +0 -54
  256. data/src/doc/Log4r/PatternFormatter.html +0 -422
  257. data/src/doc/Log4r/ROMPClient.html +0 -193
  258. data/src/doc/Log4r/ROMPServer.html +0 -193
  259. data/src/doc/Log4r/RemoteOutputter.html +0 -384
  260. data/src/doc/Log4r/RollingFileOutputter.html +0 -528
  261. data/src/doc/Log4r/RootLogger.html +0 -512
  262. data/src/doc/Log4r/SimpleFormatter.html +0 -258
  263. data/src/doc/Log4r/StderrOutputter.html +0 -250
  264. data/src/doc/Log4r/StdoutOutputter.html +0 -250
  265. data/src/doc/Log4r/SyslogOutputter.html +0 -533
  266. data/src/doc/Log4r/YamlConfigurator.html +0 -948
  267. data/src/doc/Log4r/base_rb.html +0 -57
  268. data/src/doc/Log4r/config_rb.html +0 -76
  269. data/src/doc/Log4r/configurator_rb.html +0 -370
  270. data/src/doc/Log4r/formatter/formatter_rb.html +0 -121
  271. data/src/doc/Log4r/formatter/patternformatter_rb.html +0 -233
  272. data/src/doc/Log4r/lib/drbloader_rb.html +0 -57
  273. data/src/doc/Log4r/lib/xmlloader_rb.html +0 -57
  274. data/src/doc/Log4r/logevent_rb.html +0 -55
  275. data/src/doc/Log4r/logger_rb.html +0 -293
  276. data/src/doc/Log4r/loggerfactory_rb.html +0 -66
  277. data/src/doc/Log4r/logserver_rb.html +0 -161
  278. data/src/doc/Log4r/rdoc/configurator.html +0 -444
  279. data/src/doc/Log4r/rdoc/emailoutputter.html +0 -261
  280. data/src/doc/Log4r/rdoc/formatter.html +0 -200
  281. data/src/doc/Log4r/rdoc/log4r.html +0 -268
  282. data/src/doc/Log4r/rdoc/logger.html +0 -364
  283. data/src/doc/Log4r/rdoc/logserver.html +0 -247
  284. data/src/doc/Log4r/rdoc/outputter.html +0 -295
  285. data/src/doc/Log4r/rdoc/patternformatter.html +0 -313
  286. data/src/doc/Log4r/rdoc/syslogoutputter.html +0 -179
  287. data/src/doc/Log4r/rdoc/yamlconfigurator.html +0 -169
  288. data/src/doc/Log4r/repository_rb.html +0 -62
  289. data/src/doc/Log4r/staticlogger_rb.html +0 -55
  290. data/src/doc/Log4r/yamlconfigurator_rb.html +0 -95
  291. data/src/doc/REXML.html +0 -193
  292. data/src/doc/created.rid +0 -1
  293. data/src/doc/images/brick.png +0 -0
  294. data/src/doc/images/brick_link.png +0 -0
  295. data/src/doc/images/bug.png +0 -0
  296. data/src/doc/images/bullet_black.png +0 -0
  297. data/src/doc/images/bullet_toggle_minus.png +0 -0
  298. data/src/doc/images/bullet_toggle_plus.png +0 -0
  299. data/src/doc/images/date.png +0 -0
  300. data/src/doc/images/find.png +0 -0
  301. data/src/doc/images/loadingAnimation.gif +0 -0
  302. data/src/doc/images/macFFBgHack.png +0 -0
  303. data/src/doc/images/package.png +0 -0
  304. data/src/doc/images/page_green.png +0 -0
  305. data/src/doc/images/page_white_text.png +0 -0
  306. data/src/doc/images/page_white_width.png +0 -0
  307. data/src/doc/images/plugin.png +0 -0
  308. data/src/doc/images/ruby.png +0 -0
  309. data/src/doc/images/tag_green.png +0 -0
  310. data/src/doc/images/wrench.png +0 -0
  311. data/src/doc/images/wrench_orange.png +0 -0
  312. data/src/doc/images/zoom.png +0 -0
  313. data/src/doc/index.html +0 -384
  314. data/src/doc/js/darkfish.js +0 -116
  315. data/src/doc/js/jquery.js +0 -32
  316. data/src/doc/js/quicksearch.js +0 -114
  317. data/src/doc/js/thickbox-compressed.js +0 -10
  318. data/src/doc/rdoc.css +0 -696
  319. data/src/log4r/outputter/tst.rb +0 -8
@@ -1,57 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
-
9
- <title>File: base.rb [1.1.2 Log4r API Documentation]</title>
10
-
11
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
-
13
- <script src="../js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="../js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="../js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="../js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file file-popup">
24
- <div id="metadata">
25
- <dl>
26
- <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">Thu Mar 18 19:31:06 -0800 2004</dd>
28
-
29
-
30
- <dt class="requires">Requires</dt>
31
- <dd class="requires">
32
- <ul>
33
-
34
- <li>log4r/config</li>
35
-
36
- </ul>
37
- </dd>
38
-
39
-
40
-
41
- </dl>
42
- </div>
43
-
44
- <div id="documentation">
45
-
46
- <div class="description">
47
- <h2>Description</h2>
48
- <p>
49
- :nodoc:
50
- </p>
51
-
52
- </div>
53
-
54
- </div>
55
- </body>
56
- </html>
57
-
@@ -1,76 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
-
9
- <title>File: config.rb [1.1.2 Log4r API Documentation]</title>
10
-
11
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
-
13
- <script src="../js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="../js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="../js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="../js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file file-popup">
24
- <div id="metadata">
25
- <dl>
26
- <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">Thu Mar 18 19:31:06 -0800 2004</dd>
28
-
29
-
30
- <dt class="requires">Requires</dt>
31
- <dd class="requires">
32
- <ul>
33
-
34
- </ul>
35
- </dd>
36
-
37
-
38
-
39
- </dl>
40
- </div>
41
-
42
- <div id="documentation">
43
-
44
- <div class="description">
45
- <h2>Description</h2>
46
- <pre>
47
- :nodoc:
48
- Version:: $Id: config.rb,v 1.1.1.1 2004/03/19 03:31:06 fando Exp $
49
- ---
50
- TODO: catch unparsed parameters #{FOO} and die
51
- ---
52
- </pre>
53
- <p>
54
- :nodoc:
55
- </p>
56
- <pre>
57
- ---
58
- </pre>
59
- <p>
60
- :nodoc:
61
- </p>
62
- <pre>
63
- ---
64
- :nodoc:
65
- ---
66
- :nodoc:
67
- ---
68
- :nodoc:
69
- </pre>
70
-
71
- </div>
72
-
73
- </div>
74
- </body>
75
- </html>
76
-
@@ -1,370 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
-
9
- <title>File: configurator.rb [1.1.2 Log4r API Documentation]</title>
10
-
11
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
-
13
- <script src="../js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="../js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="../js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="../js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file file-popup">
24
- <div id="metadata">
25
- <dl>
26
- <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">Thu Mar 18 19:31:06 -0800 2004</dd>
28
-
29
-
30
- <dt class="requires">Requires</dt>
31
- <dd class="requires">
32
- <ul>
33
-
34
- <li>log4r/logger</li>
35
-
36
- <li>log4r/outputter/staticoutputter</li>
37
-
38
- <li>log4r/lib/xmlloader</li>
39
-
40
- <li>log4r/logserver</li>
41
-
42
- <li>log4r/outputter/remoteoutputter</li>
43
-
44
- </ul>
45
- </dd>
46
-
47
-
48
-
49
- </dl>
50
- </div>
51
-
52
- <div id="documentation">
53
-
54
- <div class="description">
55
- <h2>Description</h2>
56
- <h1>Configuring <a href="../Log4r.html">Log4r</a> with <a href="../Log4r/Configurator.html">Log4r::Configurator</a></h1>
57
- <p>
58
- The Configurator class allows one to set up <a
59
- href="../Log4r.html">Log4r</a> via XML. Additionally, Configurator contains
60
- methods to configure any <a href="../Log4r.html">Log4r</a> defaults. In
61
- particular, Configurator provides a method to customize the logging levels.
62
- </p>
63
- <p>
64
- <a href="../Log4r.html">Log4r</a> is also configurable using YAML. For
65
- that, there is a class similar to Configurator called <a
66
- href="../Log4r/YamlConfigurator.html">Log4r::YamlConfigurator</a>. Please
67
- see <a href="yamlconfigurator_rb.html">log4r/yamlconfigurator.rb</a> for
68
- details.
69
- </p>
70
- <p>
71
- REXML is required for XML configuration. Get REXML at <a
72
- href="http://www.ruby-lang.org/en/raa-list.rhtml?name=REXML">www.ruby-lang.org/en/raa-list.rhtml?name=REXML</a>
73
- </p>
74
- <p>
75
- To use the Configurator class,
76
- </p>
77
- <pre>
78
- require 'log4r/configurator'
79
- </pre>
80
- <h2>Custom Levels</h2>
81
- <p>
82
- Suppose you want the following levels and ranks:
83
- </p>
84
- <pre>
85
- Foo &lt; Bar &lt; Baz
86
- </pre>
87
- <p>
88
- This is easily accomplished:
89
- </p>
90
- <pre>
91
- Configurator.custom_levels('Foo', 'Bar', :Baz)
92
- </pre>
93
- <p>
94
- The method accepts strings or symbols. However, custom levels must have
95
- names that are valid for Ruby constants. Also, custom levels should be set
96
- before anything else is done with <a href="../Log4r.html">Log4r</a>,
97
- otherwise the default levels will be loaded.
98
- </p>
99
- <p>
100
- You can set custom levels in XML. That&#8217;s covered in the following
101
- section.
102
- </p>
103
- <h2>XML Configuration</h2>
104
- <p>
105
- If you have REXML, you can configure <a href="../Log4r.html">Log4r</a> with
106
- XML. To do this, first write an XML configuration (which you can learn by
107
- studying this document and the examples provided in the distribution) and
108
- then load up the XML from within your program as follows:
109
- </p>
110
- <pre>
111
- Configurator.load_xml_file('/path/to/file.xml')
112
- </pre>
113
- <p>
114
- The <a href="../Log4r.html">Log4r</a> XML configuration system is very
115
- flexible and powerful. In fact, it is somewhat preferable to configuring <a
116
- href="../Log4r.html">Log4r</a> in Ruby. In order to take full advantage of
117
- this feature, there are several concepts one must know. They are covered in
118
- the following three sections.
119
- </p>
120
- <h3>Concept: XML Directives</h3>
121
- <p>
122
- The expressive power of Ruby has enabled a feature I call <em>XML
123
- directives</em>. An XML directive is a name-value pair belonging to some
124
- element. It may be represented as an attribute (name=&#8220;value&#8221;)
125
- of the element, or as a child (<name>value</name>) of the element.
126
- Therefore, you are free to specify information about an object as either an
127
- attribute or an element. An example should clarify:
128
- </p>
129
- <pre>
130
- &lt;object data=&quot;value&quot;/&gt;
131
- </pre>
132
- <p>
133
- Is equivalent to:
134
- </p>
135
- <pre>
136
- &lt;object&gt;
137
- &lt;data&gt;value&lt;/data&gt;
138
- &lt;/object&gt;
139
- </pre>
140
- <p>
141
- You can assume this behavior except where noted elsewhere in the API.
142
- </p>
143
- <h3>Concept: XML Parameters</h3>
144
- <p>
145
- A scheme which I call <em>XML parameters</em> enables one to utilize the
146
- XML configuratin system for custom Outputters and Formatters. This requires
147
- <b>no</b> extra work on your part, so long as your objects are set up using
148
- hash arguments and can decode string values. That is, once you&#8217;ve
149
- written a custom Outputter, it is automatically configurable in XML without
150
- having to write any extra code.
151
- </p>
152
- <p>
153
- An XML parameter is analogous to a hash argument to some object&#8217;s
154
- <tt>new</tt> method. Consider these hash arguments to FileOutputter:
155
- </p>
156
- <pre>
157
- :filename =&gt; '/path/to/logs/my.log'
158
- :trunc =&gt; 'true'
159
- </pre>
160
- <p>
161
- We can specify them in XML like this:
162
- </p>
163
- <pre>
164
- &lt;outputter type=&quot;FileOutputter&quot; trunc=&quot;true&quot;&gt;
165
- &lt;filename&gt;/path/to/logs/my.log&lt;/filename&gt;
166
- ...
167
- </pre>
168
- <p>
169
- The name of the element/attribute is just the name of the parameter. Note
170
- that the input will be a string, thus it&#8217;s wise to convert the data
171
- in from strings in any custom classes (to_i for integers, etc). Now
172
- let&#8217;s suppose you have defined a custom Outputter named MyOutputter
173
- with the following additional hash args:
174
- </p>
175
- <pre>
176
- :myarg1 =&gt; 'foo'
177
- :myarg2 =&gt; 123
178
- </pre>
179
- <p>
180
- Automagically, you can configure your Outputter like so:
181
- </p>
182
- <pre>
183
- &lt;outputter type=&quot;MyOutputter&quot; myarg2=&quot;123&quot;&gt;
184
- &lt;myarg1&gt;foo&lt;/myarg1&gt;
185
- ...
186
- </pre>
187
- <p>
188
- Isn&#8217;t that nice? <tt>:-)</tt>
189
- </p>
190
- <h3>Concept: Variable Substitution</h3>
191
- <p>
192
- To kill the need for preprocessors, Configurator provides a means of
193
- variable substitution for XML parameters at runtime. If you specify
194
- <tt>#{foo}</tt> in an XML parameter value, Configurator will replace it
195
- with the value of &#8216;foo&#8217; in its parameter hashtable. The primary
196
- idea is that you can figure stuff out in your program, say the log path,
197
- and relay that information to the XML while it&#8217;s being loaded.
198
- Secondarily, it is a way to have aliases within an XML document.
199
- </p>
200
- <p>
201
- There are two ways to tell Configurator about these variables. The first
202
- method we&#8217;ll cover is done within a Ruby program with Configurator[].
203
- </p>
204
- <pre>
205
- Configurator['logpath'] = '/path/to/logs'
206
- </pre>
207
- <p>
208
- Thereafter, any occurence of <tt>#{logpath}</tt> in each and every XML
209
- parameter will be substituted with &#8216;/path/to/logs&#8217;. For
210
- example:
211
- </p>
212
- <pre>
213
- &lt;filename&gt;#{logpath}/mylog.log&lt;/filename&gt;
214
- </pre>
215
- <p>
216
- Becomes,
217
- </p>
218
- <pre>
219
- &lt;filename&gt;/path/to/logs/mylog.log&lt;/filename&gt;
220
- </pre>
221
- <p>
222
- Aside from Configurator[], another way to define XML parameter variables is
223
- to define <tt>parameters</tt> under the <tt>&lt;pre_config&gt;</tt> element
224
- of an XML configuration:
225
- </p>
226
- <pre>
227
- &lt;pre_config&gt;
228
- &lt;parameter name=&quot;logpath&quot; value=&quot;/path/to/logs'/&gt;
229
- &lt;parameter name=&quot;other&quot; value=&quot;somethingelse'/&gt;
230
- ...
231
- &lt;/pre_config&gt;
232
- </pre>
233
- <p>
234
- Alternatively,
235
- </p>
236
- <pre>
237
- &lt;pre_config&gt;
238
- &lt;parameters&gt;
239
- &lt;logpath&gt;/path/to/logs&lt;/logpath&gt;
240
- &lt;other&gt;somethingelse&lt;/other&gt;
241
- ...
242
- &lt;/parameters&gt;
243
- ...
244
- </pre>
245
- <p>
246
- The end result is the same as using Configurator[]. However, this method is
247
- not dynamic. Configurator[] should be used when you want to set variables
248
- from within Ruby.
249
- </p>
250
- <h1>XML Grammar</h1>
251
- <p>
252
- And now, here&#8217;s the XML grammar we use to configure <a
253
- href="../Log4r.html">Log4r</a>.
254
- </p>
255
- <h2>Root Element</h2>
256
- <p>
257
- The root element is <tt>&lt;log4r_config&gt;</tt>. It can be embedded as a
258
- node of any other element in an XML file. For instance:
259
- </p>
260
- <pre>
261
- &lt;my-xml-thing&gt;
262
- &lt;customize-libraries&gt;
263
- &lt;log4r_config&gt;
264
- &lt;!-- log4r configuratin goes here --&gt;
265
- &lt;/log4r_config&gt;
266
- ...
267
- </pre>
268
- <h2>Pre-config element</h2>
269
- <p>
270
- The pre_config element is a child of log4r_config and contains:
271
- </p>
272
- <ul>
273
- <li>&#8216;custom_levels&#8217; element
274
-
275
- </li>
276
- <li>&#8216;global&#8217; element
277
-
278
- </li>
279
- <li>&#8216;parameters&#8217; element
280
-
281
- </li>
282
- <li>any number of &#8216;parameter&#8217; elements
283
-
284
- </li>
285
- </ul>
286
- <h3>Pre_config: Custom Levels</h3>
287
- <p>
288
- The custom_levels element is not an <em>XML directive</em> of pre_config.
289
- It <b>must</b> be specified like this:
290
- </p>
291
- <pre>
292
- &lt;custom_levels&gt;Foo, Bar, Baz&lt;/custom_levels&gt;
293
- </pre>
294
- <p>
295
- And <b>not</b> like this:
296
- </p>
297
- <pre>
298
- &lt;!-- NOT SUPPORTED --&gt;
299
- &lt;custom_levels levels=&quot;Foo, Bar, Baz&quot;/&gt;
300
- </pre>
301
- <h3>Pre_config: Global Level</h3>
302
- <pre>
303
- &lt;global level=&quot;DEBUG&quot;/&gt;
304
- </pre>
305
- <p>
306
- or
307
- </p>
308
- <pre>
309
- &lt;global&gt;&lt;level&gt;DEBUG&lt;/level&gt;&lt;/global&gt;
310
- </pre>
311
- <p>
312
- Here, level is an XML directive of global.
313
- </p>
314
- <h3>Pre_config: Parameters</h3>
315
- <p>
316
- Parameters are variables that will be substituted later on. Please see the
317
- <b>Concept: Variable Substitution</b> section above. Parameters are <em>XML
318
- Directives</em>, which means they can be expressed using elements or
319
- attributes. Here is an example:
320
- </p>
321
- <pre>
322
- &lt;parameter name=&quot;param name 1&quot; value=&quot;param value 1&quot;&gt;
323
- &lt;parameter name=&quot;param name 2&quot; value=&quot;param value 2&quot;&gt;
324
- ...
325
- &lt;parameters&gt;
326
- &lt;param3&gt;value3&lt;/param3&gt;
327
- &lt;param4&gt;value3&lt;/param4&gt;
328
- ...
329
- </pre>
330
- <h3>Pre_config: Complete Example</h3>
331
- <pre>
332
- &lt;log4r_config&gt;
333
-
334
- &lt;pre_config&gt;
335
- &lt;custom_levels&gt;
336
- Foo,Bar, Baz
337
- &lt;/custom_levels&gt;
338
- &lt;global level=&quot;Bar&quot;/&gt;
339
- &lt;parameters&gt;
340
- &lt;logpath&gt;/var/log/foo&lt;/logpath&gt;
341
- &lt;mypattern&gt;%l [%d] %m&lt;/mypattern&gt;
342
- &lt;/parameters&gt;
343
- &lt;/pre_config&gt;
344
-
345
- &lt;!-- define some outputters and loggers --&gt;
346
-
347
- &lt;/log4r_config&gt;
348
- </pre>
349
- <h2>Configuring <a href="../Log4r.html">Log4r</a> Objects</h2>
350
- <p>
351
- The XML configuration grammar for Loggers, Outputters and the like are
352
- covered in the usage guidelines for those classes.
353
- </p>
354
- <h2>Order Doesn&#8217;t Matter</h2>
355
- <p>
356
- You can (it is hoped) define any of the XML objects in any order desired.
357
- </p>
358
- <h2>Other Info</h2>
359
- <table>
360
- <tr><td valign="top">Version:</td><td>$Id: configurator.rb,v 1.1.1.1 2004/03/19 03:31:06 fando Exp $
361
-
362
- </td></tr>
363
- </table>
364
-
365
- </div>
366
-
367
- </div>
368
- </body>
369
- </html>
370
-