log4r 1.1.6 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. data/README +3 -3
  2. data/Rakefile +2 -2
  3. data/doc/rdoc/Log4r.html +519 -0
  4. data/doc/rdoc/Log4r/BasicFormatter.html +388 -0
  5. data/doc/rdoc/Log4r/ConfigError.html +225 -0
  6. data/doc/rdoc/Log4r/Configurator.html +1068 -0
  7. data/doc/rdoc/Log4r/DateFileOutputter.html +479 -0
  8. data/doc/rdoc/Log4r/DefaultFormatter.html +223 -0
  9. data/doc/rdoc/Log4r/EmailOutputter.html +654 -0
  10. data/doc/rdoc/Log4r/FileOutputter.html +346 -0
  11. data/doc/rdoc/Log4r/Formatter.html +309 -0
  12. data/doc/rdoc/Log4r/GDC.html +346 -0
  13. data/doc/rdoc/Log4r/GDC_rb.html +80 -0
  14. data/doc/rdoc/Log4r/IOOutputter.html +410 -0
  15. data/doc/rdoc/Log4r/Log4jXmlFormatter.html +337 -0
  16. data/doc/rdoc/Log4r/Log4rConfig.html +211 -0
  17. data/doc/rdoc/Log4r/Log4rTools.html +388 -0
  18. data/doc/rdoc/Log4r/LogEvent.html +378 -0
  19. data/doc/rdoc/Log4r/LogServer.html +340 -0
  20. data/doc/rdoc/Log4r/Logger.html +1150 -0
  21. data/doc/rdoc/Log4r/Logger/LoggerFactory.html +218 -0
  22. data/doc/rdoc/Log4r/Logger/Repository.html +225 -0
  23. data/doc/rdoc/Log4r/MDC.html +424 -0
  24. data/doc/rdoc/Log4r/MDC_rb.html +83 -0
  25. data/doc/rdoc/Log4r/NDC.html +632 -0
  26. data/doc/rdoc/Log4r/NDC_rb.html +110 -0
  27. data/doc/rdoc/Log4r/ObjectFormatter.html +280 -0
  28. data/doc/rdoc/Log4r/Outputter.html +934 -0
  29. data/doc/rdoc/Log4r/Outputter/OutputterFactory.html +218 -0
  30. data/doc/rdoc/Log4r/Outputter/consoleoutputters_rb.html +57 -0
  31. data/doc/rdoc/Log4r/Outputter/datefileoutputter_rb.html +93 -0
  32. data/doc/rdoc/Log4r/Outputter/emailoutputter_rb.html +179 -0
  33. data/doc/rdoc/Log4r/Outputter/fileoutputter_rb.html +64 -0
  34. data/doc/rdoc/Log4r/Outputter/iooutputter_rb.html +59 -0
  35. data/doc/rdoc/Log4r/Outputter/outputter_rb.html +222 -0
  36. data/doc/rdoc/Log4r/Outputter/outputterfactory_rb.html +62 -0
  37. data/doc/rdoc/Log4r/Outputter/remoteoutputter_rb.html +59 -0
  38. data/doc/rdoc/Log4r/Outputter/rollingfileoutputter_rb.html +66 -0
  39. data/doc/rdoc/Log4r/Outputter/staticoutputter_rb.html +55 -0
  40. data/doc/rdoc/Log4r/Outputter/syslogoutputter_rb.html +110 -0
  41. data/doc/rdoc/Log4r/Outputter/udpoutputter_rb.html +220 -0
  42. data/doc/rdoc/Log4r/PatternFormatter.html +404 -0
  43. data/doc/rdoc/Log4r/ROMPClient.html +211 -0
  44. data/doc/rdoc/Log4r/ROMPServer.html +211 -0
  45. data/doc/rdoc/Log4r/RemoteOutputter.html +402 -0
  46. data/doc/rdoc/Log4r/RollingFileOutputter.html +551 -0
  47. data/doc/rdoc/Log4r/RootLogger.html +530 -0
  48. data/doc/rdoc/Log4r/SimpleFormatter.html +276 -0
  49. data/doc/rdoc/Log4r/StderrOutputter.html +268 -0
  50. data/doc/rdoc/Log4r/StdoutOutputter.html +268 -0
  51. data/doc/rdoc/Log4r/SyslogOutputter.html +551 -0
  52. data/doc/rdoc/Log4r/UDPOutputter.html +379 -0
  53. data/doc/rdoc/Log4r/YamlConfigurator.html +966 -0
  54. data/doc/rdoc/Log4r/base_rb.html +57 -0
  55. data/doc/rdoc/Log4r/config_rb.html +122 -0
  56. data/doc/rdoc/Log4r/configurator_rb.html +370 -0
  57. data/doc/rdoc/Log4r/formatter/formatter_rb.html +121 -0
  58. data/doc/rdoc/Log4r/formatter/log4jxmlformatter_rb.html +64 -0
  59. data/doc/rdoc/Log4r/formatter/patternformatter_rb.html +239 -0
  60. data/doc/rdoc/Log4r/lib/drbloader_rb.html +57 -0
  61. data/doc/rdoc/Log4r/lib/xmlloader_rb.html +57 -0
  62. data/doc/rdoc/Log4r/logevent_rb.html +55 -0
  63. data/doc/rdoc/Log4r/logger_rb.html +293 -0
  64. data/doc/rdoc/Log4r/loggerfactory_rb.html +66 -0
  65. data/doc/rdoc/Log4r/logserver_rb.html +161 -0
  66. data/doc/rdoc/Log4r/rdoc/GDC.html +175 -0
  67. data/doc/rdoc/Log4r/rdoc/MDC.html +178 -0
  68. data/doc/rdoc/Log4r/rdoc/NDC.html +207 -0
  69. data/doc/rdoc/Log4r/rdoc/configurator.html +462 -0
  70. data/doc/rdoc/Log4r/rdoc/emailoutputter.html +279 -0
  71. data/doc/rdoc/Log4r/rdoc/formatter.html +218 -0
  72. data/doc/rdoc/Log4r/rdoc/log4r.html +286 -0
  73. data/doc/rdoc/Log4r/rdoc/logger.html +382 -0
  74. data/doc/rdoc/Log4r/rdoc/logserver.html +265 -0
  75. data/doc/rdoc/Log4r/rdoc/outputter.html +313 -0
  76. data/doc/rdoc/Log4r/rdoc/patternformatter.html +331 -0
  77. data/doc/rdoc/Log4r/rdoc/syslogoutputter.html +197 -0
  78. data/doc/rdoc/Log4r/rdoc/win32eventoutputter.html +165 -0
  79. data/doc/rdoc/Log4r/rdoc/yamlconfigurator.html +187 -0
  80. data/doc/rdoc/Log4r/repository_rb.html +74 -0
  81. data/doc/rdoc/Log4r/staticlogger_rb.html +55 -0
  82. data/doc/rdoc/Log4r/yamlconfigurator_rb.html +95 -0
  83. data/doc/rdoc/REXML.html +211 -0
  84. data/doc/rdoc/created.rid +1 -0
  85. data/doc/rdoc/images/brick.png +0 -0
  86. data/doc/rdoc/images/brick_link.png +0 -0
  87. data/doc/rdoc/images/bug.png +0 -0
  88. data/doc/rdoc/images/bullet_black.png +0 -0
  89. data/doc/rdoc/images/bullet_toggle_minus.png +0 -0
  90. data/doc/rdoc/images/bullet_toggle_plus.png +0 -0
  91. data/doc/rdoc/images/date.png +0 -0
  92. data/doc/rdoc/images/find.png +0 -0
  93. data/doc/rdoc/images/loadingAnimation.gif +0 -0
  94. data/doc/rdoc/images/macFFBgHack.png +0 -0
  95. data/doc/rdoc/images/package.png +0 -0
  96. data/doc/rdoc/images/page_green.png +0 -0
  97. data/doc/rdoc/images/page_white_text.png +0 -0
  98. data/doc/rdoc/images/page_white_width.png +0 -0
  99. data/doc/rdoc/images/plugin.png +0 -0
  100. data/doc/rdoc/images/ruby.png +0 -0
  101. data/doc/rdoc/images/tag_green.png +0 -0
  102. data/doc/rdoc/images/wrench.png +0 -0
  103. data/doc/rdoc/images/wrench_orange.png +0 -0
  104. data/doc/rdoc/images/zoom.png +0 -0
  105. data/doc/rdoc/index.html +585 -0
  106. data/doc/rdoc/js/darkfish.js +116 -0
  107. data/doc/rdoc/js/jquery.js +32 -0
  108. data/doc/rdoc/js/quicksearch.js +114 -0
  109. data/doc/rdoc/js/thickbox-compressed.js +10 -0
  110. data/doc/rdoc/log4r-rdoc.css +696 -0
  111. data/doc/rdoc/log4r_rb.html +207 -0
  112. data/doc/rdoc/rdoc.css +696 -0
  113. data/examples/rdoc-gen +2 -0
  114. data/src/log4r.rb +2 -2
  115. data/src/log4r/formatter/patternformatter.rb +15 -15
  116. data/src/log4r/outputter/udpoutputter.rb +4 -4
  117. data/tests/testchainsaw.rb +1 -1
  118. metadata +123 -8
  119. data/src/log4r/outputter/datefileoutputter.patch +0 -24
  120. data/src/log4r/outputter/diff +0 -14
  121. data/src/log4r/outputter/new-datefileoutputter.rb +0 -117
@@ -0,0 +1,218 @@
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
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: Log4r::Outputter::OutputterFactory</title>
9
+
10
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="file-metadata">
26
+ <div id="file-list-section" class="section">
27
+ <h3 class="section-header">In Files</h3>
28
+ <div class="section-body">
29
+ <ul>
30
+
31
+ <li><a href="../../log4r/outputter/outputterfactory_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
32
+ class="thickbox" title="log4r/outputter/outputterfactory.rb">log4r/outputter/outputterfactory.rb</a></li>
33
+
34
+ </ul>
35
+ </div>
36
+ </div>
37
+
38
+
39
+ </div>
40
+
41
+ <div id="class-metadata">
42
+
43
+ <!-- Parent Class -->
44
+
45
+ <div id="parent-class-section" class="section">
46
+ <h3 class="section-header">Parent</h3>
47
+
48
+ <p class="link">Object</p>
49
+
50
+ </div>
51
+
52
+
53
+ <!-- Namespace Contents -->
54
+
55
+
56
+ <!-- Method Quickref -->
57
+
58
+
59
+ <!-- Included Modules -->
60
+
61
+ </div>
62
+
63
+ <div id="project-metadata">
64
+
65
+
66
+ <div id="fileindex-section" class="section project-section">
67
+ <h3 class="section-header">Files</h3>
68
+ <ul>
69
+
70
+ <li class="file"><a href="../../log4r/rdoc/GDC.html">GDC</a></li>
71
+
72
+ <li class="file"><a href="../../log4r/rdoc/MDC.html">MDC</a></li>
73
+
74
+ <li class="file"><a href="../../log4r/rdoc/NDC.html">NDC</a></li>
75
+
76
+ <li class="file"><a href="../../log4r/rdoc/configurator.html">configurator</a></li>
77
+
78
+ <li class="file"><a href="../../log4r/rdoc/emailoutputter.html">emailoutputter</a></li>
79
+
80
+ <li class="file"><a href="../../log4r/rdoc/formatter.html">formatter</a></li>
81
+
82
+ <li class="file"><a href="../../log4r/rdoc/log4r.html">log4r</a></li>
83
+
84
+ <li class="file"><a href="../../log4r/rdoc/logger.html">logger</a></li>
85
+
86
+ <li class="file"><a href="../../log4r/rdoc/logserver.html">logserver</a></li>
87
+
88
+ <li class="file"><a href="../../log4r/rdoc/outputter.html">outputter</a></li>
89
+
90
+ <li class="file"><a href="../../log4r/rdoc/patternformatter.html">patternformatter</a></li>
91
+
92
+ <li class="file"><a href="../../log4r/rdoc/syslogoutputter.html">syslogoutputter</a></li>
93
+
94
+ <li class="file"><a href="../../log4r/rdoc/win32eventoutputter.html">win32eventoutputter</a></li>
95
+
96
+ <li class="file"><a href="../../log4r/rdoc/yamlconfigurator.html">yamlconfigurator</a></li>
97
+
98
+ </ul>
99
+ </div>
100
+
101
+
102
+ <div id="classindex-section" class="section project-section">
103
+ <h3 class="section-header">Class Index
104
+ <span class="search-toggle"><img src="../../images/find.png"
105
+ height="16" width="16" alt="[+]"
106
+ title="show/hide quicksearch" /></span></h3>
107
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
108
+ <fieldset>
109
+ <legend>Quicksearch</legend>
110
+ <input type="text" name="quicksearch" value=""
111
+ class="quicksearch-field" />
112
+ </fieldset>
113
+ </form>
114
+
115
+ <ul class="link-list">
116
+
117
+ <li><a href="../../Log4r.html">Log4r</a></li>
118
+
119
+ <li><a href="../../Log4r/BasicFormatter.html">Log4r::BasicFormatter</a></li>
120
+
121
+ <li><a href="../../Log4r/ConfigError.html">Log4r::ConfigError</a></li>
122
+
123
+ <li><a href="../../Log4r/Configurator.html">Log4r::Configurator</a></li>
124
+
125
+ <li><a href="../../Log4r/DateFileOutputter.html">Log4r::DateFileOutputter</a></li>
126
+
127
+ <li><a href="../../Log4r/DefaultFormatter.html">Log4r::DefaultFormatter</a></li>
128
+
129
+ <li><a href="../../Log4r/EmailOutputter.html">Log4r::EmailOutputter</a></li>
130
+
131
+ <li><a href="../../Log4r/FileOutputter.html">Log4r::FileOutputter</a></li>
132
+
133
+ <li><a href="../../Log4r/Formatter.html">Log4r::Formatter</a></li>
134
+
135
+ <li><a href="../../Log4r/GDC.html">Log4r::GDC</a></li>
136
+
137
+ <li><a href="../../Log4r/IOOutputter.html">Log4r::IOOutputter</a></li>
138
+
139
+ <li><a href="../../Log4r/Log4jXmlFormatter.html">Log4r::Log4jXmlFormatter</a></li>
140
+
141
+ <li><a href="../../Log4r/Log4rTools.html">Log4r::Log4rTools</a></li>
142
+
143
+ <li><a href="../../Log4r/LogEvent.html">Log4r::LogEvent</a></li>
144
+
145
+ <li><a href="../../Log4r/LogServer.html">Log4r::LogServer</a></li>
146
+
147
+ <li><a href="../../Log4r/Logger.html">Log4r::Logger</a></li>
148
+
149
+ <li><a href="../../Log4r/MDC.html">Log4r::MDC</a></li>
150
+
151
+ <li><a href="../../Log4r/NDC.html">Log4r::NDC</a></li>
152
+
153
+ <li><a href="../../Log4r/ObjectFormatter.html">Log4r::ObjectFormatter</a></li>
154
+
155
+ <li><a href="../../Log4r/Outputter.html">Log4r::Outputter</a></li>
156
+
157
+ <li><a href="../../Log4r/PatternFormatter.html">Log4r::PatternFormatter</a></li>
158
+
159
+ <li><a href="../../Log4r/RemoteOutputter.html">Log4r::RemoteOutputter</a></li>
160
+
161
+ <li><a href="../../Log4r/RollingFileOutputter.html">Log4r::RollingFileOutputter</a></li>
162
+
163
+ <li><a href="../../Log4r/RootLogger.html">Log4r::RootLogger</a></li>
164
+
165
+ <li><a href="../../Log4r/SimpleFormatter.html">Log4r::SimpleFormatter</a></li>
166
+
167
+ <li><a href="../../Log4r/StderrOutputter.html">Log4r::StderrOutputter</a></li>
168
+
169
+ <li><a href="../../Log4r/StdoutOutputter.html">Log4r::StdoutOutputter</a></li>
170
+
171
+ <li><a href="../../Log4r/SyslogOutputter.html">Log4r::SyslogOutputter</a></li>
172
+
173
+ <li><a href="../../Log4r/UDPOutputter.html">Log4r::UDPOutputter</a></li>
174
+
175
+ <li><a href="../../Log4r/YamlConfigurator.html">Log4r::YamlConfigurator</a></li>
176
+
177
+ </ul>
178
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
179
+ </div>
180
+
181
+
182
+ </div>
183
+ </div>
184
+
185
+ <div id="documentation">
186
+ <h1 class="class">Log4r::Outputter::OutputterFactory</h1>
187
+
188
+ <div id="description">
189
+
190
+ </div>
191
+
192
+ <!-- Constants -->
193
+
194
+
195
+ <!-- Attributes -->
196
+
197
+
198
+ <!-- Methods -->
199
+
200
+
201
+ </div>
202
+
203
+
204
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
205
+
206
+ <p>Disabled; run with --debug to generate this.</p>
207
+
208
+ </div>
209
+
210
+ <div id="validator-badges">
211
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
212
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
213
+ Rdoc Generator</a> 1.1.6</small>.</p>
214
+ </div>
215
+
216
+ </body>
217
+ </html>
218
+
@@ -0,0 +1,57 @@
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: consoleoutputters.rb [1.1.7 Log4r API]</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:09 -0800 2004</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>log4r/outputter/iooutputter</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
+
@@ -0,0 +1,93 @@
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: datefileoutputter.rb [1.1.7 Log4r API]</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 11 18:37:24 -0800 2010</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>log4r/outputter/fileoutputter</li>
35
+
36
+ <li>log4r/staticlogger</li>
37
+
38
+ </ul>
39
+ </dd>
40
+
41
+
42
+
43
+ </dl>
44
+ </div>
45
+
46
+ <div id="documentation">
47
+
48
+ <div class="description">
49
+ <h2>Description</h2>
50
+ <h1>DateFileOutputter</h1>
51
+ <p>
52
+ Subclass of FileOutputter that changes the log file daily. When a new day
53
+ begins, a new file is created with the date included in the name.
54
+ </p>
55
+ <h2>Usage</h2>
56
+ <pre>
57
+ df_out = DateFileOutputter.new('name',
58
+ :dirname=&quot;/tmp&quot;, :date_pattern=&gt;&quot;%m-%d&quot;
59
+ )
60
+ </pre>
61
+ <h2>Rate of Change</h2>
62
+ <p>
63
+ A new logfile is created whenever the current time as formatted by the date
64
+ pattern no longer matches the previous time. (This is a simple String
65
+ comparison.) So, in order to change the frequency of the rollover, just
66
+ alter the date pattern to match how fast the files should be generated. For
67
+ instance, to generate files by the minute,
68
+ </p>
69
+ <pre>
70
+ df_out.date_pattern = &quot;%M&quot;
71
+ </pre>
72
+ <p>
73
+ This causes the following files to show up one minute apart, asuming the
74
+ script starts at the 4th minute of the hour:
75
+ </p>
76
+ <pre>
77
+ file_04.rb
78
+ file_05.rb
79
+ file_06.rb
80
+ ...
81
+ </pre>
82
+ <p>
83
+ The only limitation of this approach is that the precise time cannot be
84
+ recorded as the smallest time interval equals the rollover period for this
85
+ system.
86
+ </p>
87
+
88
+ </div>
89
+
90
+ </div>
91
+ </body>
92
+ </html>
93
+
@@ -0,0 +1,179 @@
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.rb [1.1.7 Log4r API]</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">Wed Sep 23 23:21:45 -0700 2009</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>log4r/outputter/outputter</li>
35
+
36
+ <li>log4r/staticlogger</li>
37
+
38
+ <li>net/smtp</li>
39
+
40
+ </ul>
41
+ </dd>
42
+
43
+
44
+
45
+ </dl>
46
+ </div>
47
+
48
+ <div id="documentation">
49
+
50
+ <div class="description">
51
+ <h2>Description</h2>
52
+ <h1>EmailOutputter</h1>
53
+ <p>
54
+ This is an experimental class that sends a number of formatted log events
55
+ as an RFC 822 email. It should work fine if Net:SMTP doesn&#8217;t cause
56
+ any problems. Just in case, create a logger named &#8216;log4r&#8217; and
57
+ give it an outputter to see the logging statements made by this class. If
58
+ it fails to send email, it will set itself to OFF and stop logging.
59
+ </p>
60
+ <p>
61
+ In order to use it,
62
+ </p>
63
+ <pre>
64
+ require 'log4r/outputter/emailoutputter'
65
+ </pre>
66
+ <h2>SMTP Configuration</h2>
67
+ <p>
68
+ All arguments to Net::SMTP.start are supported. Pass them as hash
69
+ parameters to <tt>new</tt>. The to field is specified as a comma-delimited
70
+ list of emails (padded with s* if desired).
71
+ </p>
72
+ <p>
73
+ An example:
74
+ </p>
75
+ <pre>
76
+ email_out = EmailOutputter.new 'email_out',
77
+ :server=&gt;'localhost',
78
+ :port=&gt;25,
79
+ :domain=&gt;'somewhere.com',
80
+ :from=&gt;'me@foo.bar',
81
+ :to=&gt;'them@foo.bar, me@foo.bar, bozo@clown.net',
82
+ :subject=&gt;'Log Report'
83
+ </pre>
84
+ <h2>LogEvent Buffer</h2>
85
+ <p>
86
+ EmailOutputter stores log messages in a buffer. When the buffer reaches a
87
+ certain number, the <tt>buffsize</tt>, it will send an email containing the
88
+ contents of the buffer. The default <tt>buffsize</tt> is 100. To set
89
+ <tt>buffsize</tt>,
90
+ </p>
91
+ <pre>
92
+ email_out.buffsize = 1000 # set the buffsize to 1000
93
+ </pre>
94
+ <h2>Flush To Send Email</h2>
95
+ <p>
96
+ Flushing an EmailOutputter will mail out all the remaining LogEvents. This
97
+ is convenient for systems that encapsulate the shutdown process. It&#8217;s
98
+ a good idea to do this for all outputters,
99
+ </p>
100
+ <pre>
101
+ Outputter.each_outputter {|o| o.flush}
102
+ </pre>
103
+ <p>
104
+ Alternatively, one can invoke flush on the outputter directly,
105
+ </p>
106
+ <pre>
107
+ email_out.flush
108
+ </pre>
109
+ <p>
110
+ It&#8217;s also a good idea to notify the recepient of the email that the
111
+ system is shutting down. Before flushing, log a message to the owner of
112
+ this outputter,
113
+ </p>
114
+ <pre>
115
+ log_with_email_out.info &quot;The system is shutting down at #{Time.now}&quot;
116
+ </pre>
117
+ <h2>Format When?</h2>
118
+ <p>
119
+ LogEvents may either be formatted as they come in or as the email is being
120
+ composed. To do the former, specify a value of <tt>true</tt> to the hash
121
+ parameter <tt>formatfirst</tt>. The default is to format during email
122
+ composition.
123
+ </p>
124
+ <pre>
125
+ email_out.formatfirst = true # format as soon as LogEvents are received
126
+ </pre>
127
+ <h2>Immediate Notification</h2>
128
+ <p>
129
+ EmailOutputter can be configured to flush and send the email whenever the
130
+ logger sees a certain log priority. Use the <tt>immediate_at</tt> hash
131
+ parameter and specify the levels as a comma-delimited list (like an XML
132
+ element). To trigger an email on FATAL and ERROR,
133
+ </p>
134
+ <pre>
135
+ email_out.immediate_at = &quot;FATAL, ERROR&quot;
136
+ </pre>
137
+ <h2>Example</h2>
138
+ <p>
139
+ A security logger sends email to several folks, buffering up to 25 log
140
+ events and sending immediates on CRIT and WARN
141
+ </p>
142
+ <pre>
143
+ EmailOutputter.new 'security',
144
+ :to =&gt; 'bob@secure.net, frank@secure.net',
145
+ :buffsize =&gt; 25,
146
+ :immediate_at =&gt; 'WARN, CRIT'
147
+ </pre>
148
+ <h2>XML Configuration</h2>
149
+ <p>
150
+ See <a href="../configurator_rb.html">log4r/configurator.rb</a> for
151
+ details. Here&#8217;s an example:
152
+ </p>
153
+ <pre>
154
+ &lt;outputter name=&quot;security&quot; type=&quot;EmailOutputter&quot;
155
+ buffsize=&quot;25&quot; level=&quot;ALL&quot;&gt;
156
+ &lt;immediate_at&gt;WARN, CRIT&lt;/immediate_at&gt;
157
+ &lt;server&gt;localhost&lt;/server&gt;
158
+ &lt;from&gt;me@secure.net&lt;/from&gt;
159
+ &lt;to&gt;
160
+ bob@secure.net, frank@secure.net
161
+ &lt;/to&gt;
162
+ ...
163
+ &lt;/outputter&gt;
164
+ </pre>
165
+ <h2>To Do</h2>
166
+ <p>
167
+ This class could use some sophistication, in particular a means to compress
168
+ the logs, a way to set the subject dynamically (probably via a block
169
+ method), and a time trigger. When the time trigger is introduced, a
170
+ <tt>buffsize</tt> of 0 should mean ignore <tt>buffsize</tt> to determine
171
+ when to send the email.
172
+ </p>
173
+
174
+ </div>
175
+
176
+ </div>
177
+ </body>
178
+ </html>
179
+