log4r 1.1.6 → 1.1.7

Sign up to get free protection for your applications and to get access to all the features.
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
+