log4r 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. data/README +16 -14
  2. data/Rakefile +4 -4
  3. data/doc/content/contact.html +1 -1
  4. data/doc/content/contribute.html +1 -1
  5. data/doc/content/index.html +1 -1
  6. data/doc/content/license.html +1 -1
  7. data/doc/content/manual.html +1 -1
  8. data/doc/dev/README.developers +1 -1
  9. data/doc/dev/checklist +1 -1
  10. data/doc/rdoc-log4r.css +1 -1
  11. data/examples/ancestors.rb +53 -0
  12. data/examples/customlevels.rb +1 -1
  13. data/examples/filelog.rb +1 -1
  14. data/examples/fileroll.rb +2 -2
  15. data/examples/gmail.rb +30 -0
  16. data/examples/gmail.yaml +95 -0
  17. data/examples/logclient.rb +1 -1
  18. data/examples/logs/TestSize000001.log +575 -0
  19. data/examples/logs/TestSize000002.log +567 -0
  20. data/examples/logs/TestSize000003.log +552 -0
  21. data/examples/logs/TestSize000004.log +552 -0
  22. data/examples/logs/TestSize000005.log +552 -0
  23. data/examples/logs/TestSize000006.log +552 -0
  24. data/examples/logs/TestSize000007.log +552 -0
  25. data/examples/logs/TestSize000008.log +552 -0
  26. data/examples/logs/TestSize000009.log +552 -0
  27. data/examples/logs/TestSize000010.log +552 -0
  28. data/examples/logs/TestSize000011.log +552 -0
  29. data/examples/logs/TestSize000012.log +552 -0
  30. data/examples/logs/TestSize000013.log +552 -0
  31. data/examples/logs/TestSize000014.log +552 -0
  32. data/examples/logs/TestSize000015.log +552 -0
  33. data/examples/logs/TestSize000016.log +552 -0
  34. data/examples/logs/TestSize000017.log +552 -0
  35. data/examples/logs/TestSize000018.log +552 -0
  36. data/examples/logs/TestSize000019.log +535 -0
  37. data/examples/logs/TestSize000020.log +534 -0
  38. data/examples/logs/TestSize000021.log +534 -0
  39. data/examples/logs/TestSize000022.log +534 -0
  40. data/examples/logs/TestSize000023.log +534 -0
  41. data/examples/logs/TestSize000024.log +534 -0
  42. data/examples/logs/TestSize000025.log +534 -0
  43. data/examples/logs/TestSize000026.log +534 -0
  44. data/examples/logs/TestSize000027.log +534 -0
  45. data/examples/logs/TestSize000028.log +534 -0
  46. data/examples/logs/TestSize000029.log +534 -0
  47. data/examples/logs/TestSize000030.log +534 -0
  48. data/examples/logs/TestSize000031.log +534 -0
  49. data/examples/logs/TestSize000032.log +534 -0
  50. data/examples/logs/TestSize000033.log +534 -0
  51. data/examples/logs/TestSize000034.log +534 -0
  52. data/examples/logs/TestSize000035.log +534 -0
  53. data/examples/logs/TestSize000036.log +534 -0
  54. data/examples/logs/TestSize000037.log +534 -0
  55. data/examples/logs/TestSize000038.log +534 -0
  56. data/examples/logs/TestSize000039.log +534 -0
  57. data/examples/logs/TestSize000040.log +534 -0
  58. data/examples/logs/TestSize000041.log +534 -0
  59. data/examples/logs/TestSize000042.log +534 -0
  60. data/examples/logs/TestSize000043.log +534 -0
  61. data/examples/logs/TestSize000044.log +534 -0
  62. data/examples/logs/TestSize000045.log +534 -0
  63. data/examples/logs/TestSize000046.log +534 -0
  64. data/examples/logs/TestSize000047.log +534 -0
  65. data/examples/logs/TestSize000048.log +534 -0
  66. data/examples/logs/TestSize000049.log +534 -0
  67. data/examples/logs/TestSize000050.log +534 -0
  68. data/examples/logs/TestSize000051.log +534 -0
  69. data/examples/logs/TestSize000052.log +534 -0
  70. data/examples/logs/TestSize000053.log +534 -0
  71. data/examples/logs/TestSize000054.log +534 -0
  72. data/examples/logs/TestSize000055.log +534 -0
  73. data/examples/logs/TestSize000056.log +534 -0
  74. data/examples/logs/TestSize000057.log +534 -0
  75. data/examples/logs/TestSize000058.log +534 -0
  76. data/examples/logs/TestSize000059.log +534 -0
  77. data/examples/logs/TestSize000060.log +534 -0
  78. data/examples/logs/TestSize000061.log +534 -0
  79. data/examples/logs/TestSize000062.log +534 -0
  80. data/examples/logs/TestSize000063.log +534 -0
  81. data/examples/logs/TestSize000064.log +534 -0
  82. data/examples/logs/TestSize000065.log +534 -0
  83. data/examples/logs/TestSize000066.log +534 -0
  84. data/examples/logs/TestSize000067.log +534 -0
  85. data/examples/logs/TestSize000068.log +534 -0
  86. data/examples/logs/TestSize000069.log +534 -0
  87. data/examples/logs/TestSize000070.log +534 -0
  88. data/examples/logs/TestSize000071.log +534 -0
  89. data/examples/logs/TestSize000072.log +534 -0
  90. data/examples/logs/TestSize000073.log +534 -0
  91. data/examples/logs/TestSize000074.log +534 -0
  92. data/examples/logs/TestSize000075.log +534 -0
  93. data/examples/logs/TestSize000076.log +534 -0
  94. data/examples/logs/TestSize000077.log +534 -0
  95. data/examples/logs/TestSize000078.log +534 -0
  96. data/examples/logs/TestSize000079.log +534 -0
  97. data/examples/logs/TestSize000080.log +534 -0
  98. data/examples/logs/TestSize000081.log +534 -0
  99. data/examples/logs/TestSize000082.log +534 -0
  100. data/examples/logs/TestSize000083.log +534 -0
  101. data/examples/logs/TestSize000084.log +534 -0
  102. data/examples/logs/TestSize000085.log +534 -0
  103. data/examples/logs/TestSize000086.log +534 -0
  104. data/examples/logs/TestSize000087.log +534 -0
  105. data/examples/logs/TestSize000088.log +534 -0
  106. data/examples/logs/TestSize000089.log +534 -0
  107. data/examples/logs/TestSize000090.log +534 -0
  108. data/examples/logs/TestSize000091.log +534 -0
  109. data/examples/logs/TestSize000092.log +534 -0
  110. data/examples/logs/TestSize000093.log +534 -0
  111. data/examples/logs/TestSize000094.log +534 -0
  112. data/examples/logs/TestSize000095.log +534 -0
  113. data/examples/logs/TestSize000096.log +534 -0
  114. data/examples/logs/TestSize000097.log +534 -0
  115. data/examples/logs/TestSize000098.log +534 -0
  116. data/examples/logs/TestSize000099.log +534 -0
  117. data/examples/logs/TestSize000100.log +534 -0
  118. data/examples/logs/TestSize000101.log +534 -0
  119. data/examples/logs/TestSize000102.log +534 -0
  120. data/examples/logs/TestSize000103.log +534 -0
  121. data/examples/logs/TestSize000104.log +534 -0
  122. data/examples/logs/TestSize000105.log +534 -0
  123. data/examples/logs/TestSize000106.log +534 -0
  124. data/examples/logs/TestSize000107.log +534 -0
  125. data/examples/logs/TestSize000108.log +534 -0
  126. data/examples/logs/TestSize000109.log +534 -0
  127. data/examples/logs/TestSize000110.log +534 -0
  128. data/examples/logs/TestSize000111.log +534 -0
  129. data/examples/logs/TestSize000112.log +534 -0
  130. data/examples/logs/TestSize000113.log +534 -0
  131. data/examples/logs/TestSize000114.log +534 -0
  132. data/examples/logs/TestSize000115.log +534 -0
  133. data/examples/logs/TestSize000116.log +534 -0
  134. data/examples/logs/TestSize000117.log +534 -0
  135. data/examples/logs/TestSize000118.log +534 -0
  136. data/examples/logs/TestSize000119.log +534 -0
  137. data/examples/logs/TestSize000120.log +534 -0
  138. data/examples/logs/TestSize000121.log +534 -0
  139. data/examples/logs/TestSize000122.log +534 -0
  140. data/examples/logs/TestSize000123.log +534 -0
  141. data/examples/logs/TestSize000124.log +534 -0
  142. data/examples/logs/TestSize000125.log +534 -0
  143. data/examples/logs/TestSize000126.log +534 -0
  144. data/examples/logs/TestSize000127.log +534 -0
  145. data/examples/logs/TestSize000128.log +534 -0
  146. data/examples/logs/TestSize000129.log +534 -0
  147. data/examples/logs/TestSize000130.log +534 -0
  148. data/examples/logs/TestSize000131.log +534 -0
  149. data/examples/logs/TestSize000132.log +534 -0
  150. data/examples/logs/TestSize000133.log +534 -0
  151. data/examples/logs/TestSize000134.log +534 -0
  152. data/examples/logs/TestSize000135.log +534 -0
  153. data/examples/logs/TestSize000136.log +534 -0
  154. data/examples/logs/TestSize000137.log +534 -0
  155. data/examples/logs/TestSize000138.log +534 -0
  156. data/examples/logs/TestSize000139.log +534 -0
  157. data/examples/logs/TestSize000140.log +534 -0
  158. data/examples/logs/TestSize000141.log +534 -0
  159. data/examples/logs/TestSize000142.log +534 -0
  160. data/examples/logs/TestSize000143.log +534 -0
  161. data/examples/logs/TestSize000144.log +534 -0
  162. data/examples/logs/TestSize000145.log +534 -0
  163. data/examples/logs/TestSize000146.log +534 -0
  164. data/examples/logs/TestSize000147.log +534 -0
  165. data/examples/logs/TestSize000148.log +534 -0
  166. data/examples/logs/TestSize000149.log +534 -0
  167. data/examples/logs/TestSize000150.log +534 -0
  168. data/examples/logs/TestSize000151.log +534 -0
  169. data/examples/logs/TestSize000152.log +534 -0
  170. data/examples/logs/TestSize000153.log +534 -0
  171. data/examples/logs/TestSize000154.log +534 -0
  172. data/examples/logs/TestSize000155.log +534 -0
  173. data/examples/logs/TestSize000156.log +534 -0
  174. data/examples/logs/TestSize000157.log +534 -0
  175. data/examples/logs/TestSize000158.log +534 -0
  176. data/examples/logs/TestSize000159.log +534 -0
  177. data/examples/logs/TestSize000160.log +534 -0
  178. data/examples/logs/TestSize000161.log +534 -0
  179. data/examples/logs/TestSize000162.log +534 -0
  180. data/examples/logs/TestSize000163.log +534 -0
  181. data/examples/logs/TestSize000164.log +534 -0
  182. data/examples/logs/TestSize000165.log +534 -0
  183. data/examples/logs/TestSize000166.log +534 -0
  184. data/examples/logs/TestSize000167.log +534 -0
  185. data/examples/logs/TestSize000168.log +534 -0
  186. data/examples/logs/TestSize000169.log +534 -0
  187. data/examples/logs/TestSize000170.log +534 -0
  188. data/examples/logs/TestSize000171.log +534 -0
  189. data/examples/logs/TestSize000172.log +534 -0
  190. data/examples/logs/TestSize000173.log +534 -0
  191. data/examples/logs/TestSize000174.log +534 -0
  192. data/examples/logs/TestSize000175.log +534 -0
  193. data/examples/logs/TestSize000176.log +534 -0
  194. data/examples/logs/TestSize000177.log +534 -0
  195. data/examples/logs/TestSize000178.log +534 -0
  196. data/examples/logs/TestSize000179.log +534 -0
  197. data/examples/logs/TestSize000180.log +534 -0
  198. data/examples/logs/TestSize000181.log +534 -0
  199. data/examples/logs/TestSize000182.log +534 -0
  200. data/examples/logs/TestSize000183.log +534 -0
  201. data/examples/logs/TestSize000184.log +534 -0
  202. data/examples/logs/TestSize000185.log +534 -0
  203. data/examples/logs/TestSize000186.log +534 -0
  204. data/examples/logs/TestSize000187.log +313 -0
  205. data/examples/logs/TestTime000001.log +10 -0
  206. data/examples/logs/TestTime000002.log +10 -0
  207. data/examples/logs/TestTime000003.log +10 -0
  208. data/examples/logs/TestTime000004.log +10 -0
  209. data/examples/logs/TestTime000005.log +10 -0
  210. data/examples/logs/TestTime000006.log +10 -0
  211. data/examples/logs/TestTime000007.log +10 -0
  212. data/examples/logs/TestTime000008.log +10 -0
  213. data/examples/logs/TestTime000009.log +10 -0
  214. data/examples/logs/TestTime000010.log +10 -0
  215. data/examples/logs/TestTime000011.log +10 -0
  216. data/examples/logs/TestTime000012.log +10 -0
  217. data/examples/logs/TestTime000013.log +10 -0
  218. data/examples/logs/TestTime000014.log +9 -0
  219. data/examples/logs/TestTime000015.log +10 -0
  220. data/examples/logs/TestTime000016.log +10 -0
  221. data/examples/logs/TestTime000017.log +10 -0
  222. data/examples/logs/TestTime000018.log +10 -0
  223. data/examples/logs/TestTime000019.log +10 -0
  224. data/examples/logs/TestTime000020.log +10 -0
  225. data/examples/logs/TestTime000021.log +1 -0
  226. data/examples/logserver.rb +1 -1
  227. data/examples/moderateconfig.rb +1 -1
  228. data/examples/myformatter.rb +1 -1
  229. data/examples/outofthebox.rb +1 -1
  230. data/examples/rrsetup.rb +1 -1
  231. data/examples/simpleconfig.rb +1 -1
  232. data/examples/syslogcustom.rb +1 -1
  233. data/examples/xmlconfig.rb +1 -1
  234. data/examples/yaml.rb +1 -1
  235. data/{src → lib}/log4r.rb +2 -2
  236. data/{src → lib}/log4r/GDC.rb +1 -1
  237. data/{src → lib}/log4r/MDC.rb +1 -1
  238. data/{src → lib}/log4r/NDC.rb +1 -1
  239. data/{src → lib}/log4r/base.rb +0 -0
  240. data/{src → lib}/log4r/config.rb +1 -1
  241. data/{src → lib}/log4r/configurator.rb +1 -1
  242. data/{src → lib}/log4r/formatter/formatter.rb +1 -1
  243. data/{src → lib}/log4r/formatter/log4jxmlformatter.rb +61 -61
  244. data/{src → lib}/log4r/formatter/patternformatter.rb +3 -2
  245. data/{src → lib}/log4r/lib/drbloader.rb +0 -0
  246. data/{src → lib}/log4r/lib/xmlloader.rb +0 -0
  247. data/{src → lib}/log4r/logevent.rb +0 -0
  248. data/{src → lib}/log4r/logger.rb +6 -1
  249. data/{src → lib}/log4r/loggerfactory.rb +1 -1
  250. data/{src → lib}/log4r/logserver.rb +0 -0
  251. data/{src → lib}/log4r/outputter/consoleoutputters.rb +0 -0
  252. data/{src → lib}/log4r/outputter/datefileoutputter.rb +0 -0
  253. data/{src → lib}/log4r/outputter/emailoutputter.rb +54 -29
  254. data/{src → lib}/log4r/outputter/fileoutputter.rb +1 -1
  255. data/{src → lib}/log4r/outputter/iooutputter.rb +0 -0
  256. data/{src → lib}/log4r/outputter/outputter.rb +6 -4
  257. data/{src → lib}/log4r/outputter/outputterfactory.rb +4 -2
  258. data/{src → lib}/log4r/outputter/remoteoutputter.rb +0 -0
  259. data/lib/log4r/outputter/rollingfileoutputter.rb +234 -0
  260. data/{src → lib}/log4r/outputter/staticoutputter.rb +1 -1
  261. data/{src → lib}/log4r/outputter/syslogoutputter.rb +1 -1
  262. data/{src → lib}/log4r/outputter/udpoutputter.rb +1 -1
  263. data/{src → lib}/log4r/rdoc/GDC +0 -0
  264. data/{src → lib}/log4r/rdoc/MDC +0 -0
  265. data/{src → lib}/log4r/rdoc/NDC +0 -0
  266. data/{src → lib}/log4r/rdoc/configurator +0 -0
  267. data/{src → lib}/log4r/rdoc/emailoutputter +0 -0
  268. data/{src → lib}/log4r/rdoc/formatter +0 -0
  269. data/{src → lib}/log4r/rdoc/log4r +0 -0
  270. data/{src → lib}/log4r/rdoc/logger +0 -0
  271. data/{src → lib}/log4r/rdoc/logserver +0 -0
  272. data/{src → lib}/log4r/rdoc/outputter +0 -0
  273. data/{src → lib}/log4r/rdoc/patternformatter +0 -0
  274. data/{src → lib}/log4r/rdoc/syslogoutputter +0 -0
  275. data/{src → lib}/log4r/rdoc/win32eventoutputter +0 -0
  276. data/{src → lib}/log4r/rdoc/yamlconfigurator +0 -0
  277. data/{src → lib}/log4r/repository.rb +1 -1
  278. data/{src → lib}/log4r/staticlogger.rb +0 -0
  279. data/{src → lib}/log4r/yamlconfigurator.rb +1 -1
  280. data/tests/junk/test +0 -0
  281. data/tests/junk/tmp +0 -0
  282. data/tests/junk/tmpx.log +0 -0
  283. data/tests/testGDC.rb +1 -1
  284. data/tests/testMDC.rb +1 -1
  285. data/tests/testNDC.rb +1 -1
  286. data/tests/testall.rb +1 -1
  287. data/tests/testbase.rb +1 -1
  288. data/tests/testchainsaw.rb +1 -1
  289. data/tests/testlogger.rb +5 -5
  290. data/tests/testoutputter.rb +65 -44
  291. data/tests/testpatternformatter.rb +2 -2
  292. data/tests/testthreads.rb +23 -11
  293. metadata +263 -159
  294. data/doc/rdoc/Log4r.html +0 -519
  295. data/doc/rdoc/Log4r/BasicFormatter.html +0 -388
  296. data/doc/rdoc/Log4r/ConfigError.html +0 -225
  297. data/doc/rdoc/Log4r/Configurator.html +0 -1068
  298. data/doc/rdoc/Log4r/DateFileOutputter.html +0 -479
  299. data/doc/rdoc/Log4r/DefaultFormatter.html +0 -223
  300. data/doc/rdoc/Log4r/EmailOutputter.html +0 -654
  301. data/doc/rdoc/Log4r/FileOutputter.html +0 -346
  302. data/doc/rdoc/Log4r/Formatter.html +0 -309
  303. data/doc/rdoc/Log4r/GDC.html +0 -346
  304. data/doc/rdoc/Log4r/GDC_rb.html +0 -80
  305. data/doc/rdoc/Log4r/IOOutputter.html +0 -410
  306. data/doc/rdoc/Log4r/Log4jXmlFormatter.html +0 -337
  307. data/doc/rdoc/Log4r/Log4rConfig.html +0 -211
  308. data/doc/rdoc/Log4r/Log4rTools.html +0 -388
  309. data/doc/rdoc/Log4r/LogEvent.html +0 -378
  310. data/doc/rdoc/Log4r/LogServer.html +0 -340
  311. data/doc/rdoc/Log4r/Logger.html +0 -1150
  312. data/doc/rdoc/Log4r/Logger/LoggerFactory.html +0 -218
  313. data/doc/rdoc/Log4r/Logger/Repository.html +0 -225
  314. data/doc/rdoc/Log4r/MDC.html +0 -424
  315. data/doc/rdoc/Log4r/MDC_rb.html +0 -83
  316. data/doc/rdoc/Log4r/NDC.html +0 -632
  317. data/doc/rdoc/Log4r/NDC_rb.html +0 -110
  318. data/doc/rdoc/Log4r/ObjectFormatter.html +0 -280
  319. data/doc/rdoc/Log4r/Outputter.html +0 -934
  320. data/doc/rdoc/Log4r/Outputter/OutputterFactory.html +0 -218
  321. data/doc/rdoc/Log4r/Outputter/consoleoutputters_rb.html +0 -57
  322. data/doc/rdoc/Log4r/Outputter/datefileoutputter_rb.html +0 -93
  323. data/doc/rdoc/Log4r/Outputter/emailoutputter_rb.html +0 -179
  324. data/doc/rdoc/Log4r/Outputter/fileoutputter_rb.html +0 -64
  325. data/doc/rdoc/Log4r/Outputter/iooutputter_rb.html +0 -59
  326. data/doc/rdoc/Log4r/Outputter/outputter_rb.html +0 -222
  327. data/doc/rdoc/Log4r/Outputter/outputterfactory_rb.html +0 -62
  328. data/doc/rdoc/Log4r/Outputter/remoteoutputter_rb.html +0 -59
  329. data/doc/rdoc/Log4r/Outputter/rollingfileoutputter_rb.html +0 -66
  330. data/doc/rdoc/Log4r/Outputter/staticoutputter_rb.html +0 -55
  331. data/doc/rdoc/Log4r/Outputter/syslogoutputter_rb.html +0 -110
  332. data/doc/rdoc/Log4r/Outputter/udpoutputter_rb.html +0 -220
  333. data/doc/rdoc/Log4r/PatternFormatter.html +0 -404
  334. data/doc/rdoc/Log4r/ROMPClient.html +0 -211
  335. data/doc/rdoc/Log4r/ROMPServer.html +0 -211
  336. data/doc/rdoc/Log4r/RemoteOutputter.html +0 -402
  337. data/doc/rdoc/Log4r/RollingFileOutputter.html +0 -551
  338. data/doc/rdoc/Log4r/RootLogger.html +0 -530
  339. data/doc/rdoc/Log4r/SimpleFormatter.html +0 -276
  340. data/doc/rdoc/Log4r/StderrOutputter.html +0 -268
  341. data/doc/rdoc/Log4r/StdoutOutputter.html +0 -268
  342. data/doc/rdoc/Log4r/SyslogOutputter.html +0 -551
  343. data/doc/rdoc/Log4r/UDPOutputter.html +0 -379
  344. data/doc/rdoc/Log4r/YamlConfigurator.html +0 -966
  345. data/doc/rdoc/Log4r/base_rb.html +0 -57
  346. data/doc/rdoc/Log4r/config_rb.html +0 -122
  347. data/doc/rdoc/Log4r/configurator_rb.html +0 -370
  348. data/doc/rdoc/Log4r/formatter/formatter_rb.html +0 -121
  349. data/doc/rdoc/Log4r/formatter/log4jxmlformatter_rb.html +0 -64
  350. data/doc/rdoc/Log4r/formatter/patternformatter_rb.html +0 -239
  351. data/doc/rdoc/Log4r/lib/drbloader_rb.html +0 -57
  352. data/doc/rdoc/Log4r/lib/xmlloader_rb.html +0 -57
  353. data/doc/rdoc/Log4r/logevent_rb.html +0 -55
  354. data/doc/rdoc/Log4r/logger_rb.html +0 -293
  355. data/doc/rdoc/Log4r/loggerfactory_rb.html +0 -66
  356. data/doc/rdoc/Log4r/logserver_rb.html +0 -161
  357. data/doc/rdoc/Log4r/rdoc/GDC.html +0 -175
  358. data/doc/rdoc/Log4r/rdoc/MDC.html +0 -178
  359. data/doc/rdoc/Log4r/rdoc/NDC.html +0 -207
  360. data/doc/rdoc/Log4r/rdoc/configurator.html +0 -462
  361. data/doc/rdoc/Log4r/rdoc/emailoutputter.html +0 -279
  362. data/doc/rdoc/Log4r/rdoc/formatter.html +0 -218
  363. data/doc/rdoc/Log4r/rdoc/log4r.html +0 -286
  364. data/doc/rdoc/Log4r/rdoc/logger.html +0 -382
  365. data/doc/rdoc/Log4r/rdoc/logserver.html +0 -265
  366. data/doc/rdoc/Log4r/rdoc/outputter.html +0 -313
  367. data/doc/rdoc/Log4r/rdoc/patternformatter.html +0 -331
  368. data/doc/rdoc/Log4r/rdoc/syslogoutputter.html +0 -197
  369. data/doc/rdoc/Log4r/rdoc/win32eventoutputter.html +0 -165
  370. data/doc/rdoc/Log4r/rdoc/yamlconfigurator.html +0 -187
  371. data/doc/rdoc/Log4r/repository_rb.html +0 -74
  372. data/doc/rdoc/Log4r/staticlogger_rb.html +0 -55
  373. data/doc/rdoc/Log4r/yamlconfigurator_rb.html +0 -95
  374. data/doc/rdoc/REXML.html +0 -211
  375. data/doc/rdoc/created.rid +0 -1
  376. data/doc/rdoc/images/brick.png +0 -0
  377. data/doc/rdoc/images/brick_link.png +0 -0
  378. data/doc/rdoc/images/bug.png +0 -0
  379. data/doc/rdoc/images/bullet_black.png +0 -0
  380. data/doc/rdoc/images/bullet_toggle_minus.png +0 -0
  381. data/doc/rdoc/images/bullet_toggle_plus.png +0 -0
  382. data/doc/rdoc/images/date.png +0 -0
  383. data/doc/rdoc/images/find.png +0 -0
  384. data/doc/rdoc/images/loadingAnimation.gif +0 -0
  385. data/doc/rdoc/images/macFFBgHack.png +0 -0
  386. data/doc/rdoc/images/package.png +0 -0
  387. data/doc/rdoc/images/page_green.png +0 -0
  388. data/doc/rdoc/images/page_white_text.png +0 -0
  389. data/doc/rdoc/images/page_white_width.png +0 -0
  390. data/doc/rdoc/images/plugin.png +0 -0
  391. data/doc/rdoc/images/ruby.png +0 -0
  392. data/doc/rdoc/images/tag_green.png +0 -0
  393. data/doc/rdoc/images/wrench.png +0 -0
  394. data/doc/rdoc/images/wrench_orange.png +0 -0
  395. data/doc/rdoc/images/zoom.png +0 -0
  396. data/doc/rdoc/index.html +0 -585
  397. data/doc/rdoc/js/darkfish.js +0 -116
  398. data/doc/rdoc/js/jquery.js +0 -32
  399. data/doc/rdoc/js/quicksearch.js +0 -114
  400. data/doc/rdoc/js/thickbox-compressed.js +0 -10
  401. data/doc/rdoc/log4r-rdoc.css +0 -696
  402. data/doc/rdoc/log4r_rb.html +0 -207
  403. data/doc/rdoc/rdoc.css +0 -696
  404. data/src/log4r/outputter/rollingfileoutputter.rb +0 -131
@@ -1,5 +1,5 @@
1
1
  # :nodoc:
2
- # Version:: $Id: fileoutputter.rb,v 1.3 2010/02/03 05:15:35 colbygk Exp $
2
+ # Version:: $Id$
3
3
 
4
4
  require "log4r/outputter/iooutputter"
5
5
  require "log4r/staticlogger"
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # == Other Info
4
4
  #
5
- # Version:: $Id: outputter.rb,v 1.1.1.1 2004/03/19 03:31:09 fando Exp $
5
+ # Version:: $Id$
6
6
  # Author:: Leon Torres <leon@ugcs.caltech.edu>
7
7
 
8
8
  require "thread"
@@ -11,9 +11,11 @@ require "log4r/outputter/outputterfactory"
11
11
  require "log4r/formatter/formatter"
12
12
  require "log4r/staticlogger"
13
13
 
14
+ require 'monitor'
15
+
14
16
  module Log4r
15
17
 
16
- class Outputter
18
+ class Outputter < Monitor
17
19
  attr_reader :name, :level, :formatter
18
20
  @@outputters = Hash.new
19
21
 
@@ -24,6 +26,7 @@ module Log4r
24
26
  # [<tt>:formatter</tt>] A Formatter. Defaults to DefaultFormatter
25
27
 
26
28
  def initialize(_name, hash={})
29
+ super()
27
30
  if _name.nil?
28
31
  raise ArgumentError, "Bad arguments. Name and IO expected.", caller
29
32
  end
@@ -85,7 +88,6 @@ module Log4r
85
88
  # Validates the common hash arguments. For now, that would be
86
89
  # +:level+, +:formatter+ and the string equivalents
87
90
  def validate_hash(hash)
88
- @mutex = Mutex.new
89
91
  # default to root level and DefaultFormatter
90
92
  if hash.empty?
91
93
  self.level = Logger.root.level
@@ -125,7 +127,7 @@ module Log4r
125
127
  def write(data)
126
128
  end
127
129
 
128
- def synch; @mutex.synchronize { yield } end
130
+ def synch; synchronize { yield } end
129
131
 
130
132
  end
131
133
 
@@ -1,12 +1,14 @@
1
1
  # :nodoc:
2
- # Version: $Id: outputterfactory.rb,v 1.1.1.1 2004/03/19 03:31:09 fando Exp $
2
+ # Version: $Id$
3
3
 
4
4
  require "log4r/base"
5
5
  require "log4r/repository"
6
6
  require "log4r/logger"
7
7
 
8
+ require 'monitor'
9
+
8
10
  module Log4r
9
- class Outputter
11
+ class Outputter < Monitor
10
12
 
11
13
  class OutputterFactory #:nodoc:
12
14
  include Singleton
@@ -0,0 +1,234 @@
1
+
2
+ # :nodoc:
3
+ # Version:: $Id: rollingfileoutputter.rb,v 1.2 2009/09/29 18:13:13 colbygk Exp $
4
+
5
+ require "log4r/outputter/fileoutputter"
6
+ require "log4r/staticlogger"
7
+
8
+ require 'fileutils'
9
+
10
+ module Log4r
11
+
12
+ # RollingFileOutputter - subclass of FileOutputter that rolls files on size
13
+ # or time. So, given a filename of "error.log", the first log file will be "error000001.log".
14
+ # When its check condition is exceeded, it'll create and log to "error000002.log", etc.
15
+ #
16
+ # Additional hash arguments are:
17
+ #
18
+ # [<tt>:maxsize</tt>] Maximum size of the file in bytes.
19
+ # [<tt>:maxtime</tt>] Maximum age of the file in seconds.
20
+ # [<tt>:max_backups</tt>] Maxium number of prior log files to maintain. If max_backups is a positive number,
21
+ # then each time a roll happens, RollingFileOutputter will delete the oldest backup log files in excess
22
+ # of this number (if any). So, if max_backups is 10, then a maximum of 11 files will be maintained (the current
23
+ # log, plus 10 backups). If max_backups is 0, no backups will be kept. If it is negative (the default),
24
+ # there will be no limit on the number of files created. Note that the sequence numbers will continue to escalate;
25
+ # old sequence numbers are not reused.
26
+ # [<tt>:trunc</tt>] If true, deletes ALL existing log files (based on :filename) upon initialization,
27
+ # and the sequence numbering will start over at 000001. Otherwise continues logging where it left off
28
+ # last time (i.e. either to the file with the highest sequence number, or a new file, as appropriate).
29
+ class RollingFileOutputter < FileOutputter
30
+
31
+ attr_reader :current_sequence_number, :maxsize, :maxtime, :start_time, :max_backups
32
+
33
+ def initialize(_name, hash={})
34
+ super( _name, hash.merge({:create => false}) )
35
+ if hash.has_key?(:maxsize) || hash.has_key?('maxsize')
36
+ _maxsize = (hash[:maxsize] or hash['maxsize']).to_i
37
+ if _maxsize.class != Fixnum
38
+ raise TypeError, "Argument 'maxsize' must be an Fixnum", caller
39
+ end
40
+ if _maxsize == 0
41
+ raise TypeError, "Argument 'maxsize' must be > 0", caller
42
+ end
43
+ @maxsize = _maxsize
44
+ end
45
+ if hash.has_key?(:maxtime) || hash.has_key?('maxtime')
46
+ _maxtime = (hash[:maxtime] or hash['maxtime']).to_i
47
+ if _maxtime.class != Fixnum
48
+ raise TypeError, "Argument 'maxtime' must be an Fixnum", caller
49
+ end
50
+ if _maxtime == 0
51
+ raise TypeError, "Argument 'maxtime' must be > 0", caller
52
+ end
53
+ @maxtime = _maxtime
54
+ end
55
+ if hash.has_key?(:max_backups) || hash.has_key?('max_backups')
56
+ _max_backups = (hash[:max_backups] or hash['max_backups']).to_i
57
+ if _max_backups.class != Fixnum
58
+ raise TypeError, "Argument 'max_backups' must be an Fixnum", caller
59
+ end
60
+ @max_backups = _max_backups
61
+ else
62
+ @max_backups = -1
63
+ end
64
+ # @filename starts out as the file (including path) provided by the user, e.g. "\usr\logs\error.log".
65
+ # It will get assigned the current log file (including sequence number)
66
+ # @log_dir is the directory in which we'll log, e.g. "\usr\logs"
67
+ # @file_extension is the file's extension (if any) including any period, e.g. ".log"
68
+ # @core_file_name is the part of the log file's name, sans sequence digits or extension, e.g. "error"
69
+ @log_dir = File.dirname(@filename)
70
+ @file_extension = File.extname(@filename) # Note: the File API doc comment states that this doesn't include the period, but its examples and behavior do include it. We'll depend on the latter.
71
+ @core_file_name = File.basename(@filename, @file_extension)
72
+ if (@trunc)
73
+ purge_log_files(0)
74
+ end
75
+ @current_sequence_number = get_current_sequence_number()
76
+ makeNewFilename
77
+ # Now @filename points to a properly sequenced filename, which may or may not yet exist.
78
+ open_log_file('a')
79
+
80
+ # Note: it's possible we're already in excess of our time or size constraint for the current file;
81
+ # no worries -- if a new file needs to be started, it'll happen during the write() call.
82
+ end
83
+
84
+ #######
85
+ private
86
+ #######
87
+
88
+ # Delete all but the latest number_to_keep log files.
89
+ def purge_log_files(number_to_keep)
90
+ Dir.chdir(@log_dir) do
91
+ # Make a list of the log files to delete. Start with all of the matching log files...
92
+ glob = "#{@core_file_name}[0-9][0-9][0-9][0-9][0-9][0-9]#{@file_extension}"
93
+ files = Dir.glob(glob)
94
+
95
+ # ... if there are fewer than our threshold, just return...
96
+ if (files.size() <= number_to_keep )
97
+ # Logger.log_internal {"No log files need purging."}
98
+ return
99
+ end
100
+ # ...then remove those that we want to keep (i.e. the most recent #{number_to_keep} files).
101
+ files.sort!().slice!(-number_to_keep, number_to_keep)
102
+
103
+ # Delete the files. We use force (rm_f), so in case any files can't be deleted (e.g. someone's got one
104
+ # open in an editor), we'll swallow the error and keep going.
105
+ FileUtils.rm_f(files)
106
+ Logger.log_internal { "Purged #{files.length} log files: #{files}" }
107
+ end
108
+ end
109
+
110
+ # Get the highest existing log file sequence number, or 1 if there are no existing log files.
111
+ def get_current_sequence_number()
112
+ max_seq_no = 0
113
+ Dir.foreach(@log_dir) do |child|
114
+ if child =~ /^#{@core_file_name}(\d+)#{@file_extension}$/
115
+ seq_no = $1.to_i
116
+ if (seq_no > max_seq_no)
117
+ max_seq_no = seq_no
118
+ end
119
+ end
120
+ end
121
+ return [max_seq_no, 1].max
122
+ end
123
+
124
+ # perform the write
125
+ def write(data)
126
+ # we have to keep track of the file size ourselves - File.size doesn't
127
+ # seem to report the correct size when the size changes rapidly
128
+ @datasize += data.size + 1 # the 1 is for newline
129
+ roll if requiresRoll
130
+ super
131
+ end
132
+
133
+ # Constructs a new filename from the @current_sequence_number, @core_file_name, and @file_extension,
134
+ # and assigns it to @filename
135
+ def makeNewFilename
136
+ # note use of hard coded 6 digit sequence width - is this enough files?
137
+ padded_seq_no = "0" * (6 - @current_sequence_number.to_s.length) + @current_sequence_number.to_s
138
+ newbase = "#{@core_file_name}#{padded_seq_no}#{@file_extension}"
139
+ @filename = File.join(@log_dir, newbase)
140
+ end
141
+
142
+ # Open @filename with the given mode:
143
+ # 'a' - appends to the end of the file if it exists; otherwise creates it.
144
+ # 'w' - truncates the file to zero length if it exists, otherwise creates it.
145
+ # Re-initializes @datasize and @startime appropriately.
146
+ def open_log_file(mode)
147
+ # It appears that if a file has been recently deleted then recreated, calls like
148
+ # File.ctime can return the erstwhile creation time. File.size? can similarly return
149
+ # old information. So instead of simply doing ctime and size checks after File.new, we
150
+ # do slightly more complicated checks beforehand:
151
+ if (mode == 'w' || !File.exists?(@filename))
152
+ @start_time = Time.now()
153
+ @datasize = 0
154
+ else
155
+ @start_time = File.ctime(@filename)
156
+ @datasize = File.size?(@filename) || 0 # File.size? returns nil even if the file exists but is empty; we convert it to 0.
157
+ end
158
+ @out = File.new(@filename, mode)
159
+ Logger.log_internal {"File #{@filename} opened with mode #{mode}"}
160
+ end
161
+
162
+ # does the file require a roll?
163
+ def requiresRoll
164
+ if !@maxsize.nil? && @datasize > @maxsize
165
+ Logger.log_internal { "Rolling because #{@filename} (#{@datasize} bytes) has exceded the maxsize limit (#{@maxsize} bytes)." }
166
+ return true
167
+ end
168
+ if !@maxtime.nil? && (Time.now - @start_time) > @maxtime
169
+ Logger.log_internal { "Rolling because #{@filename} (created: #{@start_time}) has exceded the maxtime age (#{@maxtime} seconds)." }
170
+ return true
171
+ end
172
+ false
173
+ end
174
+
175
+ # roll the file
176
+ def roll
177
+ begin
178
+ # If @baseFilename == @filename, then this method is about to
179
+ # try to close out a file that is not actually opened because
180
+ # fileoutputter has been called with the parameter roll=true
181
+ # TODO: Is this check valid any more? I suspect not. Am commenting out...:
182
+ #if ( @baseFilename != @filename ) then
183
+ @out.close
184
+ #end
185
+ rescue
186
+ Logger.log_internal {
187
+ "RollingFileOutputter '#{@name}' could not close #{@filename}"
188
+ }
189
+ end
190
+
191
+ # Prepare the next file. (Note: if max_backups is zero, we can skip this; we'll
192
+ # just overwrite the existing log file)
193
+ if (@max_backups != 0)
194
+ @current_sequence_number += 1
195
+ makeNewFilename
196
+ end
197
+
198
+ open_log_file('w')
199
+
200
+ # purge any excess log files (unless max_backups is negative, which means don't purge).
201
+ if (@max_backups >= 0)
202
+ purge_log_files(@max_backups + 1)
203
+ end
204
+
205
+ end
206
+
207
+ end
208
+
209
+ end
210
+
211
+ # this can be found in examples/fileroll.rb as well
212
+ if __FILE__ == $0
213
+ require 'log4r'
214
+ include Log4r
215
+
216
+
217
+ timeLog = Logger.new 'WbExplorer'
218
+ timeLog.outputters = RollingFileOutputter.new("WbExplorer", { "filename" => "TestTime.log", "maxtime" => 10, "trunc" => true })
219
+ timeLog.level = DEBUG
220
+
221
+ 100.times { |t|
222
+ timeLog.info "blah #{t}"
223
+ sleep(1.0)
224
+ }
225
+
226
+ sizeLog = Logger.new 'WbExplorer'
227
+ sizeLog.outputters = RollingFileOutputter.new("WbExplorer", { "filename" => "TestSize.log", "maxsize" => 16000, "trunc" => true })
228
+ sizeLog.level = DEBUG
229
+
230
+ 10000.times { |t|
231
+ sizeLog.info "blah #{t}"
232
+ }
233
+
234
+ end
@@ -1,7 +1,7 @@
1
1
  # :nodoc:
2
2
  module Log4r
3
3
 
4
- class Outputter
4
+ class Outputter < Monitor
5
5
  # Retrieve an outputter.
6
6
  def self.[](name)
7
7
  out = @@outputters[name]
@@ -1,6 +1,6 @@
1
1
  # :include: ../rdoc/syslogoutputter
2
2
  #
3
- # Version:: $Id: syslogoutputter.rb,v 1.5 2009/09/25 20:33:33 colbygk Exp $
3
+ # Version:: $Id$
4
4
  # Author:: Steve Lumos
5
5
  # Author:: Leon Torres
6
6
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # == Other Info
4
4
  #
5
- # Version:: $Id: udpoutputter.rb,v 1.3 2010/03/12 17:35:06 colbygk Exp $
5
+ # Version:: $Id$
6
6
  # Author:: Leon Torres <leon@ugcs.caltech.edu>
7
7
 
8
8
  require "log4r/outputter/outputter"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  # :nodoc:
2
- # Version:: $Id: repository.rb,v 1.2 2009/09/29 02:34:05 colbygk Exp $
2
+ # Version:: $Id$
3
3
  #
4
4
  # Using Thread.exclusive seems to be more efficient than using
5
5
  # a class wide instance of Sync.synchronize in ruby 1.8.6 - Colby
File without changes
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # == Other Info
4
4
  #
5
- # Version: $Id: yamlconfigurator.rb,v 1.2 2009/10/28 19:56:40 colbygk Exp $
5
+ # Version: $Id$
6
6
 
7
7
  require "log4r/logger"
8
8
  require "log4r/outputter/staticoutputter"
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- $: << File.join("..","src")
1
+ $: << File.join("..","lib")
2
2
  require "test/unit"
3
3
  require "log4r"
4
4
  include Log4r
@@ -1,4 +1,4 @@
1
- $: << File.join("..","src")
1
+ $: << File.join("..","lib")
2
2
  require "test/unit"
3
3
  require "log4r"
4
4
  include Log4r
@@ -1,4 +1,4 @@
1
- $: << File.join("..","src")
1
+ $: << File.join("..","lib")
2
2
  require "test/unit"
3
3
  require "log4r"
4
4
  include Log4r
@@ -1,4 +1,4 @@
1
- $: << File.join("..", "src")
1
+ $: << File.join("..", "lib")
2
2
 
3
3
  # because constants are dynamically defined, some tests need to
4
4
  # be opened in a fresh instance of Ruby, hence the popens
@@ -1,4 +1,4 @@
1
- $: << File.join("..","src")
1
+ $: << File.join("..","lib")
2
2
  require "test/unit"
3
3
  require "log4r"
4
4
  include Log4r
@@ -1,4 +1,4 @@
1
- $: << File.join("..", "src")
1
+ $: << File.join("..", "lib")
2
2
 
3
3
  require 'log4r'
4
4
  require 'log4r/staticlogger'
@@ -139,16 +139,16 @@ class TestLogger < TestCase
139
139
  end
140
140
  def test_heiarchial_logging
141
141
  a = Logger.new("one")
142
- a.add(StdoutOutputter.new 'so1')
142
+ a.add(StdoutOutputter.new('so1'))
143
143
  b = Logger.new("one::two")
144
- b.add(StdoutOutputter.new 'so2')
144
+ b.add(StdoutOutputter.new('so2'))
145
145
  c = Logger.new("one::two::three")
146
- c.add(StdoutOutputter.new 'so3')
146
+ c.add(StdoutOutputter.new('so3'))
147
147
  d = Logger.new("one::two::three::four")
148
- d.add(StdoutOutputter.new 'so4')
148
+ d.add(StdoutOutputter.new('so4'))
149
149
  d.additive = false
150
150
  e = Logger.new("one::two::three::four::five")
151
- e.add(StdoutOutputter.new 'so5')
151
+ e.add(StdoutOutputter.new('so5'))
152
152
 
153
153
  a.fatal "statement from a should show up once"
154
154
  b.fatal "statement from b should show up twice"