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,444 +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 [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">
24
- <div id="metadata">
25
- <div id="project-metadata">
26
-
27
-
28
- <div id="fileindex-section" class="section project-section">
29
- <h3 class="section-header">Files</h3>
30
- <ul>
31
-
32
- <li class="file"><a href="../../log4r/rdoc/configurator.html">configurator</a></li>
33
-
34
- <li class="file"><a href="../../log4r/rdoc/emailoutputter.html">emailoutputter</a></li>
35
-
36
- <li class="file"><a href="../../log4r/rdoc/formatter.html">formatter</a></li>
37
-
38
- <li class="file"><a href="../../log4r/rdoc/log4r.html">log4r</a></li>
39
-
40
- <li class="file"><a href="../../log4r/rdoc/logger.html">logger</a></li>
41
-
42
- <li class="file"><a href="../../log4r/rdoc/logserver.html">logserver</a></li>
43
-
44
- <li class="file"><a href="../../log4r/rdoc/outputter.html">outputter</a></li>
45
-
46
- <li class="file"><a href="../../log4r/rdoc/patternformatter.html">patternformatter</a></li>
47
-
48
- <li class="file"><a href="../../log4r/rdoc/syslogoutputter.html">syslogoutputter</a></li>
49
-
50
- <li class="file"><a href="../../log4r/rdoc/yamlconfigurator.html">yamlconfigurator</a></li>
51
-
52
- </ul>
53
- </div>
54
-
55
-
56
- <div id="classindex-section" class="section project-section">
57
- <h3 class="section-header">Class Index
58
- <span class="search-toggle"><img src="../../images/find.png"
59
- height="16" width="16" alt="[+]"
60
- title="show/hide quicksearch" /></span></h3>
61
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
62
- <fieldset>
63
- <legend>Quicksearch</legend>
64
- <input type="text" name="quicksearch" value=""
65
- class="quicksearch-field" />
66
- </fieldset>
67
- </form>
68
-
69
- <ul class="link-list">
70
-
71
- <li><a href="../../Log4r.html">Log4r</a></li>
72
-
73
- <li><a href="../../Log4r/BasicFormatter.html">Log4r::BasicFormatter</a></li>
74
-
75
- <li><a href="../../Log4r/ConfigError.html">Log4r::ConfigError</a></li>
76
-
77
- <li><a href="../../Log4r/Configurator.html">Log4r::Configurator</a></li>
78
-
79
- <li><a href="../../Log4r/DateFileOutputter.html">Log4r::DateFileOutputter</a></li>
80
-
81
- <li><a href="../../Log4r/DefaultFormatter.html">Log4r::DefaultFormatter</a></li>
82
-
83
- <li><a href="../../Log4r/EmailOutputter.html">Log4r::EmailOutputter</a></li>
84
-
85
- <li><a href="../../Log4r/FileOutputter.html">Log4r::FileOutputter</a></li>
86
-
87
- <li><a href="../../Log4r/Formatter.html">Log4r::Formatter</a></li>
88
-
89
- <li><a href="../../Log4r/IOOutputter.html">Log4r::IOOutputter</a></li>
90
-
91
- <li><a href="../../Log4r/Log4rTools.html">Log4r::Log4rTools</a></li>
92
-
93
- <li><a href="../../Log4r/LogEvent.html">Log4r::LogEvent</a></li>
94
-
95
- <li><a href="../../Log4r/LogServer.html">Log4r::LogServer</a></li>
96
-
97
- <li><a href="../../Log4r/Logger.html">Log4r::Logger</a></li>
98
-
99
- <li><a href="../../Log4r/ObjectFormatter.html">Log4r::ObjectFormatter</a></li>
100
-
101
- <li><a href="../../Log4r/Outputter.html">Log4r::Outputter</a></li>
102
-
103
- <li><a href="../../Log4r/PatternFormatter.html">Log4r::PatternFormatter</a></li>
104
-
105
- <li><a href="../../Log4r/RemoteOutputter.html">Log4r::RemoteOutputter</a></li>
106
-
107
- <li><a href="../../Log4r/RollingFileOutputter.html">Log4r::RollingFileOutputter</a></li>
108
-
109
- <li><a href="../../Log4r/RootLogger.html">Log4r::RootLogger</a></li>
110
-
111
- <li><a href="../../Log4r/SimpleFormatter.html">Log4r::SimpleFormatter</a></li>
112
-
113
- <li><a href="../../Log4r/StderrOutputter.html">Log4r::StderrOutputter</a></li>
114
-
115
- <li><a href="../../Log4r/StdoutOutputter.html">Log4r::StdoutOutputter</a></li>
116
-
117
- <li><a href="../../Log4r/SyslogOutputter.html">Log4r::SyslogOutputter</a></li>
118
-
119
- <li><a href="../../Log4r/YamlConfigurator.html">Log4r::YamlConfigurator</a></li>
120
-
121
- </ul>
122
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
123
- </div>
124
-
125
-
126
- </div>
127
- </div>
128
-
129
- <div id="documentation">
130
- <h1>Configuring <a href="../../Log4r.html">Log4r</a> with <a href="../../Log4r/Configurator.html">Log4r::Configurator</a></h1>
131
- <p>
132
- The Configurator class allows one to set up <a
133
- href="../../Log4r.html">Log4r</a> via XML. Additionally, Configurator
134
- contains methods to configure any <a href="../../Log4r.html">Log4r</a>
135
- defaults. In particular, Configurator provides a method to customize the
136
- logging levels.
137
- </p>
138
- <p>
139
- <a href="../../Log4r.html">Log4r</a> is also configurable using YAML. For
140
- that, there is a class similar to Configurator called <a
141
- href="../../Log4r/YamlConfigurator.html">Log4r::YamlConfigurator</a>.
142
- Please see <a
143
- href="../yamlconfigurator_rb.html">log4r/yamlconfigurator.rb</a> for
144
- details.
145
- </p>
146
- <p>
147
- REXML is required for XML configuration. Get REXML at <a
148
- href="http://www.ruby-lang.org/en/raa-list.rhtml?name=REXML">www.ruby-lang.org/en/raa-list.rhtml?name=REXML</a>
149
- </p>
150
- <p>
151
- To use the Configurator class,
152
- </p>
153
- <pre>
154
- require 'log4r/configurator'
155
- </pre>
156
- <h2>Custom Levels</h2>
157
- <p>
158
- Suppose you want the following levels and ranks:
159
- </p>
160
- <pre>
161
- Foo &lt; Bar &lt; Baz
162
- </pre>
163
- <p>
164
- This is easily accomplished:
165
- </p>
166
- <pre>
167
- Configurator.custom_levels('Foo', 'Bar', :Baz)
168
- </pre>
169
- <p>
170
- The method accepts strings or symbols. However, custom levels must have
171
- names that are valid for Ruby constants. Also, custom levels should be set
172
- before anything else is done with <a href="../../Log4r.html">Log4r</a>,
173
- otherwise the default levels will be loaded.
174
- </p>
175
- <p>
176
- You can set custom levels in XML. That&#8217;s covered in the following
177
- section.
178
- </p>
179
- <h2>XML Configuration</h2>
180
- <p>
181
- If you have REXML, you can configure <a href="../../Log4r.html">Log4r</a>
182
- with XML. To do this, first write an XML configuration (which you can learn
183
- by studying this document and the examples provided in the distribution)
184
- and then load up the XML from within your program as follows:
185
- </p>
186
- <pre>
187
- Configurator.load_xml_file('/path/to/file.xml')
188
- </pre>
189
- <p>
190
- The <a href="../../Log4r.html">Log4r</a> XML configuration system is very
191
- flexible and powerful. In fact, it is somewhat preferable to configuring <a
192
- href="../../Log4r.html">Log4r</a> in Ruby. In order to take full advantage
193
- of this feature, there are several concepts one must know. They are covered
194
- in the following three sections.
195
- </p>
196
- <h3>Concept: XML Directives</h3>
197
- <p>
198
- The expressive power of Ruby has enabled a feature I call <em>XML
199
- directives</em>. An XML directive is a name-value pair belonging to some
200
- element. It may be represented as an attribute (name=&#8220;value&#8221;)
201
- of the element, or as a child (<name>value</name>) of the element.
202
- Therefore, you are free to specify information about an object as either an
203
- attribute or an element. An example should clarify:
204
- </p>
205
- <pre>
206
- &lt;object data=&quot;value&quot;/&gt;
207
- </pre>
208
- <p>
209
- Is equivalent to:
210
- </p>
211
- <pre>
212
- &lt;object&gt;
213
- &lt;data&gt;value&lt;/data&gt;
214
- &lt;/object&gt;
215
- </pre>
216
- <p>
217
- You can assume this behavior except where noted elsewhere in the API.
218
- </p>
219
- <h3>Concept: XML Parameters</h3>
220
- <p>
221
- A scheme which I call <em>XML parameters</em> enables one to utilize the
222
- XML configuratin system for custom Outputters and Formatters. This requires
223
- <b>no</b> extra work on your part, so long as your objects are set up using
224
- hash arguments and can decode string values. That is, once you&#8217;ve
225
- written a custom Outputter, it is automatically configurable in XML without
226
- having to write any extra code.
227
- </p>
228
- <p>
229
- An XML parameter is analogous to a hash argument to some object&#8217;s
230
- <tt>new</tt> method. Consider these hash arguments to FileOutputter:
231
- </p>
232
- <pre>
233
- :filename =&gt; '/path/to/logs/my.log'
234
- :trunc =&gt; 'true'
235
- </pre>
236
- <p>
237
- We can specify them in XML like this:
238
- </p>
239
- <pre>
240
- &lt;outputter type=&quot;FileOutputter&quot; trunc=&quot;true&quot;&gt;
241
- &lt;filename&gt;/path/to/logs/my.log&lt;/filename&gt;
242
- ...
243
- </pre>
244
- <p>
245
- The name of the element/attribute is just the name of the parameter. Note
246
- that the input will be a string, thus it&#8217;s wise to convert the data
247
- in from strings in any custom classes (to_i for integers, etc). Now
248
- let&#8217;s suppose you have defined a custom Outputter named MyOutputter
249
- with the following additional hash args:
250
- </p>
251
- <pre>
252
- :myarg1 =&gt; 'foo'
253
- :myarg2 =&gt; 123
254
- </pre>
255
- <p>
256
- Automagically, you can configure your Outputter like so:
257
- </p>
258
- <pre>
259
- &lt;outputter type=&quot;MyOutputter&quot; myarg2=&quot;123&quot;&gt;
260
- &lt;myarg1&gt;foo&lt;/myarg1&gt;
261
- ...
262
- </pre>
263
- <p>
264
- Isn&#8217;t that nice? <tt>:-)</tt>
265
- </p>
266
- <h3>Concept: Variable Substitution</h3>
267
- <p>
268
- To kill the need for preprocessors, Configurator provides a means of
269
- variable substitution for XML parameters at runtime. If you specify
270
- <tt>#{foo}</tt> in an XML parameter value, Configurator will replace it
271
- with the value of &#8216;foo&#8217; in its parameter hashtable. The primary
272
- idea is that you can figure stuff out in your program, say the log path,
273
- and relay that information to the XML while it&#8217;s being loaded.
274
- Secondarily, it is a way to have aliases within an XML document.
275
- </p>
276
- <p>
277
- There are two ways to tell Configurator about these variables. The first
278
- method we&#8217;ll cover is done within a Ruby program with Configurator[].
279
- </p>
280
- <pre>
281
- Configurator['logpath'] = '/path/to/logs'
282
- </pre>
283
- <p>
284
- Thereafter, any occurence of <tt>#{logpath}</tt> in each and every XML
285
- parameter will be substituted with &#8216;/path/to/logs&#8217;. For
286
- example:
287
- </p>
288
- <pre>
289
- &lt;filename&gt;#{logpath}/mylog.log&lt;/filename&gt;
290
- </pre>
291
- <p>
292
- Becomes,
293
- </p>
294
- <pre>
295
- &lt;filename&gt;/path/to/logs/mylog.log&lt;/filename&gt;
296
- </pre>
297
- <p>
298
- Aside from Configurator[], another way to define XML parameter variables is
299
- to define <tt>parameters</tt> under the <tt>&lt;pre_config&gt;</tt> element
300
- of an XML configuration:
301
- </p>
302
- <pre>
303
- &lt;pre_config&gt;
304
- &lt;parameter name=&quot;logpath&quot; value=&quot;/path/to/logs'/&gt;
305
- &lt;parameter name=&quot;other&quot; value=&quot;somethingelse'/&gt;
306
- ...
307
- &lt;/pre_config&gt;
308
- </pre>
309
- <p>
310
- Alternatively,
311
- </p>
312
- <pre>
313
- &lt;pre_config&gt;
314
- &lt;parameters&gt;
315
- &lt;logpath&gt;/path/to/logs&lt;/logpath&gt;
316
- &lt;other&gt;somethingelse&lt;/other&gt;
317
- ...
318
- &lt;/parameters&gt;
319
- ...
320
- </pre>
321
- <p>
322
- The end result is the same as using Configurator[]. However, this method is
323
- not dynamic. Configurator[] should be used when you want to set variables
324
- from within Ruby.
325
- </p>
326
- <h1>XML Grammar</h1>
327
- <p>
328
- And now, here&#8217;s the XML grammar we use to configure <a
329
- href="../../Log4r.html">Log4r</a>.
330
- </p>
331
- <h2>Root Element</h2>
332
- <p>
333
- The root element is <tt>&lt;log4r_config&gt;</tt>. It can be embedded as a
334
- node of any other element in an XML file. For instance:
335
- </p>
336
- <pre>
337
- &lt;my-xml-thing&gt;
338
- &lt;customize-libraries&gt;
339
- &lt;log4r_config&gt;
340
- &lt;!-- log4r configuratin goes here --&gt;
341
- &lt;/log4r_config&gt;
342
- ...
343
- </pre>
344
- <h2>Pre-config element</h2>
345
- <p>
346
- The pre_config element is a child of log4r_config and contains:
347
- </p>
348
- <ul>
349
- <li>&#8216;custom_levels&#8217; element
350
-
351
- </li>
352
- <li>&#8216;global&#8217; element
353
-
354
- </li>
355
- <li>&#8216;parameters&#8217; element
356
-
357
- </li>
358
- <li>any number of &#8216;parameter&#8217; elements
359
-
360
- </li>
361
- </ul>
362
- <h3>Pre_config: Custom Levels</h3>
363
- <p>
364
- The custom_levels element is not an <em>XML directive</em> of pre_config.
365
- It <b>must</b> be specified like this:
366
- </p>
367
- <pre>
368
- &lt;custom_levels&gt;Foo, Bar, Baz&lt;/custom_levels&gt;
369
- </pre>
370
- <p>
371
- And <b>not</b> like this:
372
- </p>
373
- <pre>
374
- &lt;!-- NOT SUPPORTED --&gt;
375
- &lt;custom_levels levels=&quot;Foo, Bar, Baz&quot;/&gt;
376
- </pre>
377
- <h3>Pre_config: Global Level</h3>
378
- <pre>
379
- &lt;global level=&quot;DEBUG&quot;/&gt;
380
- </pre>
381
- <p>
382
- or
383
- </p>
384
- <pre>
385
- &lt;global&gt;&lt;level&gt;DEBUG&lt;/level&gt;&lt;/global&gt;
386
- </pre>
387
- <p>
388
- Here, level is an XML directive of global.
389
- </p>
390
- <h3>Pre_config: Parameters</h3>
391
- <p>
392
- Parameters are variables that will be substituted later on. Please see the
393
- <b>Concept: Variable Substitution</b> section above. Parameters are <em>XML
394
- Directives</em>, which means they can be expressed using elements or
395
- attributes. Here is an example:
396
- </p>
397
- <pre>
398
- &lt;parameter name=&quot;param name 1&quot; value=&quot;param value 1&quot;&gt;
399
- &lt;parameter name=&quot;param name 2&quot; value=&quot;param value 2&quot;&gt;
400
- ...
401
- &lt;parameters&gt;
402
- &lt;param3&gt;value3&lt;/param3&gt;
403
- &lt;param4&gt;value3&lt;/param4&gt;
404
- ...
405
- </pre>
406
- <h3>Pre_config: Complete Example</h3>
407
- <pre>
408
- &lt;log4r_config&gt;
409
-
410
- &lt;pre_config&gt;
411
- &lt;custom_levels&gt;
412
- Foo,Bar, Baz
413
- &lt;/custom_levels&gt;
414
- &lt;global level=&quot;Bar&quot;/&gt;
415
- &lt;parameters&gt;
416
- &lt;logpath&gt;/var/log/foo&lt;/logpath&gt;
417
- &lt;mypattern&gt;%l [%d] %m&lt;/mypattern&gt;
418
- &lt;/parameters&gt;
419
- &lt;/pre_config&gt;
420
-
421
- &lt;!-- define some outputters and loggers --&gt;
422
-
423
- &lt;/log4r_config&gt;
424
- </pre>
425
- <h2>Configuring <a href="../../Log4r.html">Log4r</a> Objects</h2>
426
- <p>
427
- The XML configuration grammar for Loggers, Outputters and the like are
428
- covered in the usage guidelines for those classes.
429
- </p>
430
- <h2>Order Doesn&#8217;t Matter</h2>
431
- <p>
432
- You can (it is hoped) define any of the XML objects in any order desired.
433
- </p>
434
-
435
- </div>
436
-
437
- <div id="validator-badges">
438
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
439
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
440
- Rdoc Generator</a> 1.1.6</small>.</p>
441
- </div>
442
- </body>
443
- </html>
444
-
@@ -1,261 +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: emailoutputter [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">
24
- <div id="metadata">
25
- <div id="project-metadata">
26
-
27
-
28
- <div id="fileindex-section" class="section project-section">
29
- <h3 class="section-header">Files</h3>
30
- <ul>
31
-
32
- <li class="file"><a href="../../log4r/rdoc/configurator.html">configurator</a></li>
33
-
34
- <li class="file"><a href="../../log4r/rdoc/emailoutputter.html">emailoutputter</a></li>
35
-
36
- <li class="file"><a href="../../log4r/rdoc/formatter.html">formatter</a></li>
37
-
38
- <li class="file"><a href="../../log4r/rdoc/log4r.html">log4r</a></li>
39
-
40
- <li class="file"><a href="../../log4r/rdoc/logger.html">logger</a></li>
41
-
42
- <li class="file"><a href="../../log4r/rdoc/logserver.html">logserver</a></li>
43
-
44
- <li class="file"><a href="../../log4r/rdoc/outputter.html">outputter</a></li>
45
-
46
- <li class="file"><a href="../../log4r/rdoc/patternformatter.html">patternformatter</a></li>
47
-
48
- <li class="file"><a href="../../log4r/rdoc/syslogoutputter.html">syslogoutputter</a></li>
49
-
50
- <li class="file"><a href="../../log4r/rdoc/yamlconfigurator.html">yamlconfigurator</a></li>
51
-
52
- </ul>
53
- </div>
54
-
55
-
56
- <div id="classindex-section" class="section project-section">
57
- <h3 class="section-header">Class Index
58
- <span class="search-toggle"><img src="../../images/find.png"
59
- height="16" width="16" alt="[+]"
60
- title="show/hide quicksearch" /></span></h3>
61
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
62
- <fieldset>
63
- <legend>Quicksearch</legend>
64
- <input type="text" name="quicksearch" value=""
65
- class="quicksearch-field" />
66
- </fieldset>
67
- </form>
68
-
69
- <ul class="link-list">
70
-
71
- <li><a href="../../Log4r.html">Log4r</a></li>
72
-
73
- <li><a href="../../Log4r/BasicFormatter.html">Log4r::BasicFormatter</a></li>
74
-
75
- <li><a href="../../Log4r/ConfigError.html">Log4r::ConfigError</a></li>
76
-
77
- <li><a href="../../Log4r/Configurator.html">Log4r::Configurator</a></li>
78
-
79
- <li><a href="../../Log4r/DateFileOutputter.html">Log4r::DateFileOutputter</a></li>
80
-
81
- <li><a href="../../Log4r/DefaultFormatter.html">Log4r::DefaultFormatter</a></li>
82
-
83
- <li><a href="../../Log4r/EmailOutputter.html">Log4r::EmailOutputter</a></li>
84
-
85
- <li><a href="../../Log4r/FileOutputter.html">Log4r::FileOutputter</a></li>
86
-
87
- <li><a href="../../Log4r/Formatter.html">Log4r::Formatter</a></li>
88
-
89
- <li><a href="../../Log4r/IOOutputter.html">Log4r::IOOutputter</a></li>
90
-
91
- <li><a href="../../Log4r/Log4rTools.html">Log4r::Log4rTools</a></li>
92
-
93
- <li><a href="../../Log4r/LogEvent.html">Log4r::LogEvent</a></li>
94
-
95
- <li><a href="../../Log4r/LogServer.html">Log4r::LogServer</a></li>
96
-
97
- <li><a href="../../Log4r/Logger.html">Log4r::Logger</a></li>
98
-
99
- <li><a href="../../Log4r/ObjectFormatter.html">Log4r::ObjectFormatter</a></li>
100
-
101
- <li><a href="../../Log4r/Outputter.html">Log4r::Outputter</a></li>
102
-
103
- <li><a href="../../Log4r/PatternFormatter.html">Log4r::PatternFormatter</a></li>
104
-
105
- <li><a href="../../Log4r/RemoteOutputter.html">Log4r::RemoteOutputter</a></li>
106
-
107
- <li><a href="../../Log4r/RollingFileOutputter.html">Log4r::RollingFileOutputter</a></li>
108
-
109
- <li><a href="../../Log4r/RootLogger.html">Log4r::RootLogger</a></li>
110
-
111
- <li><a href="../../Log4r/SimpleFormatter.html">Log4r::SimpleFormatter</a></li>
112
-
113
- <li><a href="../../Log4r/StderrOutputter.html">Log4r::StderrOutputter</a></li>
114
-
115
- <li><a href="../../Log4r/StdoutOutputter.html">Log4r::StdoutOutputter</a></li>
116
-
117
- <li><a href="../../Log4r/SyslogOutputter.html">Log4r::SyslogOutputter</a></li>
118
-
119
- <li><a href="../../Log4r/YamlConfigurator.html">Log4r::YamlConfigurator</a></li>
120
-
121
- </ul>
122
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
123
- </div>
124
-
125
-
126
- </div>
127
- </div>
128
-
129
- <div id="documentation">
130
- <h1>EmailOutputter</h1>
131
- <p>
132
- This is an experimental class that sends a number of formatted log events
133
- as an RFC 822 email. It should work fine if Net:SMTP doesn&#8217;t cause
134
- any problems. Just in case, create a logger named &#8216;log4r&#8217; and
135
- give it an outputter to see the logging statements made by this class. If
136
- it fails to send email, it will set itself to OFF and stop logging.
137
- </p>
138
- <p>
139
- In order to use it,
140
- </p>
141
- <pre>
142
- require 'log4r/outputter/emailoutputter'
143
- </pre>
144
- <h2>SMTP Configuration</h2>
145
- <p>
146
- All arguments to Net::SMTP.start are supported. Pass them as hash
147
- parameters to <tt>new</tt>. The to field is specified as a comma-delimited
148
- list of emails (padded with s* if desired).
149
- </p>
150
- <p>
151
- An example:
152
- </p>
153
- <pre>
154
- email_out = EmailOutputter.new 'email_out',
155
- :server=&gt;'localhost',
156
- :port=&gt;25,
157
- :domain=&gt;'somewhere.com',
158
- :from=&gt;'me@foo.bar',
159
- :to=&gt;'them@foo.bar, me@foo.bar, bozo@clown.net',
160
- :subject=&gt;'Log Report'
161
- </pre>
162
- <h2>LogEvent Buffer</h2>
163
- <p>
164
- EmailOutputter stores log messages in a buffer. When the buffer reaches a
165
- certain number, the <tt>buffsize</tt>, it will send an email containing the
166
- contents of the buffer. The default <tt>buffsize</tt> is 100. To set
167
- <tt>buffsize</tt>,
168
- </p>
169
- <pre>
170
- email_out.buffsize = 1000 # set the buffsize to 1000
171
- </pre>
172
- <h2>Flush To Send Email</h2>
173
- <p>
174
- Flushing an EmailOutputter will mail out all the remaining LogEvents. This
175
- is convenient for systems that encapsulate the shutdown process. It&#8217;s
176
- a good idea to do this for all outputters,
177
- </p>
178
- <pre>
179
- Outputter.each_outputter {|o| o.flush}
180
- </pre>
181
- <p>
182
- Alternatively, one can invoke flush on the outputter directly,
183
- </p>
184
- <pre>
185
- email_out.flush
186
- </pre>
187
- <p>
188
- It&#8217;s also a good idea to notify the recepient of the email that the
189
- system is shutting down. Before flushing, log a message to the owner of
190
- this outputter,
191
- </p>
192
- <pre>
193
- log_with_email_out.info &quot;The system is shutting down at #{Time.now}&quot;
194
- </pre>
195
- <h2>Format When?</h2>
196
- <p>
197
- LogEvents may either be formatted as they come in or as the email is being
198
- composed. To do the former, specify a value of <tt>true</tt> to the hash
199
- parameter <tt>formatfirst</tt>. The default is to format during email
200
- composition.
201
- </p>
202
- <pre>
203
- email_out.formatfirst = true # format as soon as LogEvents are received
204
- </pre>
205
- <h2>Immediate Notification</h2>
206
- <p>
207
- EmailOutputter can be configured to flush and send the email whenever the
208
- logger sees a certain log priority. Use the <tt>immediate_at</tt> hash
209
- parameter and specify the levels as a comma-delimited list (like an XML
210
- element). To trigger an email on FATAL and ERROR,
211
- </p>
212
- <pre>
213
- email_out.immediate_at = &quot;FATAL, ERROR&quot;
214
- </pre>
215
- <h2>Example</h2>
216
- <p>
217
- A security logger sends email to several folks, buffering up to 25 log
218
- events and sending immediates on CRIT and WARN
219
- </p>
220
- <pre>
221
- EmailOutputter.new 'security',
222
- :to =&gt; 'bob@secure.net, frank@secure.net',
223
- :buffsize =&gt; 25,
224
- :immediate_at =&gt; 'WARN, CRIT'
225
- </pre>
226
- <h2>XML Configuration</h2>
227
- <p>
228
- See <a href="../configurator_rb.html">log4r/configurator.rb</a> for
229
- details. Here&#8217;s an example:
230
- </p>
231
- <pre>
232
- &lt;outputter name=&quot;security&quot; type=&quot;EmailOutputter&quot;
233
- buffsize=&quot;25&quot; level=&quot;ALL&quot;&gt;
234
- &lt;immediate_at&gt;WARN, CRIT&lt;/immediate_at&gt;
235
- &lt;server&gt;localhost&lt;/server&gt;
236
- &lt;from&gt;me@secure.net&lt;/from&gt;
237
- &lt;to&gt;
238
- bob@secure.net, frank@secure.net
239
- &lt;/to&gt;
240
- ...
241
- &lt;/outputter&gt;
242
- </pre>
243
- <h2>To Do</h2>
244
- <p>
245
- This class could use some sophistication, in particular a means to compress
246
- the logs, a way to set the subject dynamically (probably via a block
247
- method), and a time trigger. When the time trigger is introduced, a
248
- <tt>buffsize</tt> of 0 should mean ignore <tt>buffsize</tt> to determine
249
- when to send the email.
250
- </p>
251
-
252
- </div>
253
-
254
- <div id="validator-badges">
255
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
256
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
257
- Rdoc Generator</a> 1.1.6</small>.</p>
258
- </div>
259
- </body>
260
- </html>
261
-