log4r 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/README +3 -3
  2. data/Rakefile +3 -3
  3. data/doc/rdoc-log4r.css +696 -0
  4. data/examples/syslogcustom.rb +6 -1
  5. data/src/doc/Log4r.html +392 -0
  6. data/src/doc/Log4r/BasicFormatter.html +370 -0
  7. data/src/doc/Log4r/ConfigError.html +207 -0
  8. data/src/doc/Log4r/Configurator.html +1050 -0
  9. data/src/doc/Log4r/DateFileOutputter.html +454 -0
  10. data/src/doc/Log4r/DefaultFormatter.html +205 -0
  11. data/src/doc/Log4r/EmailOutputter.html +636 -0
  12. data/src/doc/Log4r/FileOutputter.html +321 -0
  13. data/src/doc/Log4r/Formatter.html +291 -0
  14. data/src/doc/Log4r/IOOutputter.html +392 -0
  15. data/src/doc/Log4r/Log4rConfig.html +193 -0
  16. data/src/doc/Log4r/Log4rTools.html +370 -0
  17. data/src/doc/Log4r/LogEvent.html +360 -0
  18. data/src/doc/Log4r/LogServer.html +322 -0
  19. data/src/doc/Log4r/Logger.html +1132 -0
  20. data/src/doc/Log4r/Logger/LoggerFactory.html +200 -0
  21. data/src/doc/Log4r/Logger/Repository.html +207 -0
  22. data/src/doc/Log4r/ObjectFormatter.html +262 -0
  23. data/src/doc/Log4r/Outputter.html +910 -0
  24. data/src/doc/Log4r/Outputter/OutputterFactory.html +200 -0
  25. data/src/doc/Log4r/Outputter/consoleoutputters_rb.html +57 -0
  26. data/src/doc/Log4r/Outputter/datefileoutputter_rb.html +93 -0
  27. data/src/doc/Log4r/Outputter/emailoutputter_rb.html +179 -0
  28. data/src/doc/Log4r/Outputter/fileoutputter_rb.html +64 -0
  29. data/src/doc/Log4r/Outputter/iooutputter_rb.html +59 -0
  30. data/src/doc/Log4r/Outputter/outputter_rb.html +222 -0
  31. data/src/doc/Log4r/Outputter/outputterfactory_rb.html +62 -0
  32. data/src/doc/Log4r/Outputter/remoteoutputter_rb.html +59 -0
  33. data/src/doc/Log4r/Outputter/rollingfileoutputter_rb.html +66 -0
  34. data/src/doc/Log4r/Outputter/staticoutputter_rb.html +55 -0
  35. data/src/doc/Log4r/Outputter/syslogoutputter_rb.html +110 -0
  36. data/src/doc/Log4r/Outputter/tst_rb.html +54 -0
  37. data/src/doc/Log4r/PatternFormatter.html +422 -0
  38. data/src/doc/Log4r/ROMPClient.html +193 -0
  39. data/src/doc/Log4r/ROMPServer.html +193 -0
  40. data/src/doc/Log4r/RemoteOutputter.html +384 -0
  41. data/src/doc/Log4r/RollingFileOutputter.html +528 -0
  42. data/src/doc/Log4r/RootLogger.html +512 -0
  43. data/src/doc/Log4r/SimpleFormatter.html +258 -0
  44. data/src/doc/Log4r/StderrOutputter.html +250 -0
  45. data/src/doc/Log4r/StdoutOutputter.html +250 -0
  46. data/src/doc/Log4r/SyslogOutputter.html +533 -0
  47. data/src/doc/Log4r/YamlConfigurator.html +948 -0
  48. data/src/doc/Log4r/base_rb.html +57 -0
  49. data/src/doc/Log4r/config_rb.html +76 -0
  50. data/src/doc/Log4r/configurator_rb.html +370 -0
  51. data/src/doc/Log4r/formatter/formatter_rb.html +121 -0
  52. data/src/doc/Log4r/formatter/patternformatter_rb.html +233 -0
  53. data/src/doc/Log4r/lib/drbloader_rb.html +57 -0
  54. data/src/doc/Log4r/lib/xmlloader_rb.html +57 -0
  55. data/src/doc/Log4r/logevent_rb.html +55 -0
  56. data/src/doc/Log4r/logger_rb.html +293 -0
  57. data/src/doc/Log4r/loggerfactory_rb.html +66 -0
  58. data/src/doc/Log4r/logserver_rb.html +161 -0
  59. data/src/doc/Log4r/rdoc/configurator.html +444 -0
  60. data/src/doc/Log4r/rdoc/emailoutputter.html +261 -0
  61. data/src/doc/Log4r/rdoc/formatter.html +200 -0
  62. data/src/doc/Log4r/rdoc/log4r.html +268 -0
  63. data/src/doc/Log4r/rdoc/logger.html +364 -0
  64. data/src/doc/Log4r/rdoc/logserver.html +247 -0
  65. data/src/doc/Log4r/rdoc/outputter.html +295 -0
  66. data/src/doc/Log4r/rdoc/patternformatter.html +313 -0
  67. data/src/doc/Log4r/rdoc/syslogoutputter.html +179 -0
  68. data/src/doc/Log4r/rdoc/yamlconfigurator.html +169 -0
  69. data/src/doc/Log4r/repository_rb.html +62 -0
  70. data/src/doc/Log4r/staticlogger_rb.html +55 -0
  71. data/src/doc/Log4r/yamlconfigurator_rb.html +95 -0
  72. data/src/doc/REXML.html +193 -0
  73. data/src/doc/created.rid +1 -0
  74. data/src/doc/images/brick.png +0 -0
  75. data/src/doc/images/brick_link.png +0 -0
  76. data/src/doc/images/bug.png +0 -0
  77. data/src/doc/images/bullet_black.png +0 -0
  78. data/src/doc/images/bullet_toggle_minus.png +0 -0
  79. data/src/doc/images/bullet_toggle_plus.png +0 -0
  80. data/src/doc/images/date.png +0 -0
  81. data/src/doc/images/find.png +0 -0
  82. data/src/doc/images/loadingAnimation.gif +0 -0
  83. data/src/doc/images/macFFBgHack.png +0 -0
  84. data/src/doc/images/package.png +0 -0
  85. data/src/doc/images/page_green.png +0 -0
  86. data/src/doc/images/page_white_text.png +0 -0
  87. data/src/doc/images/page_white_width.png +0 -0
  88. data/src/doc/images/plugin.png +0 -0
  89. data/src/doc/images/ruby.png +0 -0
  90. data/src/doc/images/tag_green.png +0 -0
  91. data/src/doc/images/wrench.png +0 -0
  92. data/src/doc/images/wrench_orange.png +0 -0
  93. data/src/doc/images/zoom.png +0 -0
  94. data/src/doc/index.html +384 -0
  95. data/src/doc/js/darkfish.js +116 -0
  96. data/src/doc/js/jquery.js +32 -0
  97. data/src/doc/js/quicksearch.js +114 -0
  98. data/src/doc/js/thickbox-compressed.js +10 -0
  99. data/src/doc/rdoc.css +696 -0
  100. data/src/log4r.rb +2 -2
  101. data/src/log4r/formatter/patternformatter.rb +18 -2
  102. data/src/log4r/logger.rb +2 -2
  103. data/src/log4r/outputter/emailoutputter.rb +2 -0
  104. data/src/log4r/outputter/syslogoutputter.rb +29 -9
  105. data/src/log4r/outputter/tst.rb +8 -0
  106. metadata +99 -3
  107. data/examples/logs/simple.log +0 -1
@@ -0,0 +1,295 @@
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: outputter [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>Outputters</h1>
131
+ <p>
132
+ An Outputter is a logging destination with a particular way to format data.
133
+ It has a level threshold and a flexible level mask.
134
+ </p>
135
+ <p>
136
+ Outputters must have names.
137
+ </p>
138
+ <h2>Level Threshold</h2>
139
+ <p>
140
+ Outputters have their own level thresholds that default to <tt>root</tt>
141
+ level. They will not write any log events with a rank less than their
142
+ threshold.
143
+ </p>
144
+ <h2>Level Mask</h2>
145
+ <p>
146
+ Alternatively, an Outputter can be told to log specific levels only:
147
+ </p>
148
+ <pre>
149
+ o = StdoutOutputter.new 'console'
150
+ o.only_at DEBUG, FATAL # only DEBUG and FATAL get written
151
+ </pre>
152
+ <h2>Outputter Repository</h2>
153
+ <p>
154
+ When outputters are created, they store themselves in an Outputter
155
+ repository similar to the Logger repository.
156
+ </p>
157
+ <pre>
158
+ StdoutOutputter.new 'console' =&gt; Create 'console' outputter
159
+ Outputter['console'] =&gt; Get it back from the stash.
160
+ </pre>
161
+ <h2>Formatter</h2>
162
+ <p>
163
+ An outputter has a format defined by its Formatter. If no Formatter is
164
+ specified, DefaultFormatter will be used.
165
+ </p>
166
+ <h2>Outputter is Abstract</h2>
167
+ <p>
168
+ The basic Outputter class is both abstract and a null object.
169
+ </p>
170
+ <h2>Interesting Outputters</h2>
171
+ <ul>
172
+ <li><a
173
+ href="../outputter/syslogoutputter_rb.html">log4r/outputter/syslogoutputter.rb</a>
174
+ - Logs to syslog
175
+
176
+ </li>
177
+ <li><a
178
+ href="../outputter/emailoutputter_rb.html">log4r/outputter/emailoutputter.rb</a>
179
+ - Email logs
180
+
181
+ </li>
182
+ <li><a href="../logserver_rb.html">log4r/logserver.rb</a> - For remote logging
183
+
184
+ </li>
185
+ </ul>
186
+ <h2>Subclasses</h2>
187
+ <ul>
188
+ <li><a href="../../Log4r/IOOutputter.html">Log4r::IOOutputter</a> - for any IO
189
+ object
190
+
191
+ </li>
192
+ <li><a href="../../Log4r/StdoutOutputter.html">Log4r::StdoutOutputter</a> -
193
+ $stdout
194
+
195
+ </li>
196
+ <li><a href="../../Log4r/StderrOutputter.html">Log4r::StderrOutputter</a> -
197
+ $stderr
198
+
199
+ </li>
200
+ <li><a href="../../Log4r/FileOutputter.html">Log4r::FileOutputter</a> - log to
201
+ a file
202
+
203
+ </li>
204
+ <li><a
205
+ href="../../Log4r/RollingFileOutputter.html">Log4r::RollingFileOutputter</a>
206
+ - log to a file and split it as it grows
207
+
208
+ </li>
209
+ <li><a href="../../Log4r/SyslogOutputter.html">Log4r::SyslogOutputter</a> -
210
+ logs to syslog
211
+
212
+ </li>
213
+ <li><a href="../../Log4r/EmailOutputter.html">Log4r::EmailOutputter</a> - email
214
+ logs
215
+
216
+ </li>
217
+ <li><a href="../../Log4r/RemoteOutputter.html">Log4r::RemoteOutputter</a> - for
218
+ remote logging
219
+
220
+ </li>
221
+ </ul>
222
+ <h2>Default Outputters</h2>
223
+ <p>
224
+ Two outputters named &#8216;stdout&#8217; and &#8216;stderr&#8217; are
225
+ created automatically at the root level. They are nice shortcuts.
226
+ </p>
227
+ <pre>
228
+ Outputter['stdout'] =&gt; 'stdout'
229
+ Outputter['stderr'] =&gt; 'stderr'
230
+ Outputter.stdout =&gt; 'stdout'
231
+ Outputter.stderr =&gt; 'stderr'
232
+ </pre>
233
+ <h2>Configuring</h2>
234
+ <p>
235
+ Outputters must have names and receive hash arguments. The parameter name
236
+ for the hash args can be either a symbol or a string. All defined
237
+ outputters accept <tt>:level</tt> and <tt>:formatter</tt> arguments. For
238
+ arguments specific to a convenience Outputter, please look at the class
239
+ description.
240
+ </p>
241
+ <p>
242
+ The level threshold, the levels to log at (only_at) and formatter can be
243
+ changed dynamically using the <tt>=</tt> methods.
244
+ </p>
245
+ <p>
246
+ As a collective example of all this, here are various ways to set up an
247
+ IOOutputter:
248
+ </p>
249
+ <pre>
250
+ IOOutputter.new ExoticIO.new 'exotic', 'level' =&gt; WARN,
251
+ :formatter =&gt; MyFormatter.new
252
+ # an equivalent way:
253
+ o = IOOutputter.new ExoticIO.new 'exotic'
254
+ o.level = WARN
255
+ o.formatter = MyFormatter # we can specify just the class
256
+ o.only_at = THIS, THAT
257
+ </pre>
258
+ <h2>XML Configuration</h2>
259
+ <p>
260
+ Specify outputters as children of <tt>&lt;log4r_config&gt;</tt>:
261
+ </p>
262
+ <pre>
263
+ &lt;log4r_config&gt;
264
+ &lt;outputter name=&quot;myout&quot; type=&quot;Log4r::StdoutOutputter&quot;&gt;
265
+ &lt;only_at&gt;DEBUG, INFO&lt;/only_at&gt;
266
+ &lt;/outputter&gt;
267
+ &lt;outputter name=&quot;file&quot; level=&quot;WARN&quot;&gt;
268
+ &lt;type&gt;FileOutputter&lt;/type&gt;
269
+ &lt;filename&gt;#{logpath}/file.log&lt;/filename&gt;
270
+ &lt;trunc&gt;false&lt;/trunc&gt;
271
+ &lt;/outputter&gt;
272
+ ...
273
+ </pre>
274
+ <p>
275
+ As explained in <a
276
+ href="../configurator_rb.html">log4r/configurator.rb</a>, the hash
277
+ arguments you would normally pass to <tt>new</tt> are specified as <em>XML
278
+ parameters</em>. It is given an IO object to write to, a Formatter to call,
279
+ and, optionally, levels to write at.
280
+ </p>
281
+ <p>
282
+ Outputters invoke print then flush on the wrapped IO object. If the IO
283
+ chokes, the Outputter will close the IO and set its level to <tt>OFF</tt>.
284
+ </p>
285
+
286
+ </div>
287
+
288
+ <div id="validator-badges">
289
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
290
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
291
+ Rdoc Generator</a> 1.1.6</small>.</p>
292
+ </div>
293
+ </body>
294
+ </html>
295
+
@@ -0,0 +1,313 @@
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: patternformatter [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>PatternFormatter</h1>
131
+ <p>
132
+ PatternFormatter offers complete control over the appearance of <a
133
+ href="../../Log4r.html">Log4r</a> log events without having to write custom
134
+ Formatter classes. In order to take advantage of PatternFormatter, some
135
+ familarity with Kernel#sprintf or the C printf function is recommended. For
136
+ time formatting, please look at Time.strftime.
137
+ </p>
138
+ <p>
139
+ PatternFormatter accepts three hash arguments:
140
+ </p>
141
+ <table>
142
+ <tr><td valign="top"><tt>pattern</tt>:</td><td>Log event format string.
143
+
144
+ </td></tr>
145
+ <tr><td valign="top"><tt>date_pattern</tt>:</td><td>Date format string.
146
+
147
+ </td></tr>
148
+ <tr><td valign="top"><tt>date_method</tt>:</td><td><tt>Time</tt> method to call (instead of using date_pattern).
149
+
150
+ </td></tr>
151
+ </table>
152
+ <p>
153
+ The <tt>pattern</tt> format string is something like &#8220;%l [%d]
154
+ %80M&#8221;, which resembles a pattern one would normally pass to
155
+ Kernel#sprintf. However, the directives are specific to <a
156
+ href="../../Log4r.html">Log4r</a>. Before we go on, let&#8217;s cover some
157
+ terminology.
158
+ </p>
159
+ <h2>Terminology</h2>
160
+ <dl>
161
+ <dt><b>%</b></dt><dd>The directive identifier. Everything after this up to and including one of
162
+ the <em>directive letters</em> defines a <em>directive</em>.
163
+
164
+ </dd>
165
+ <dt><b>directive letter</b></dt><dd>Letters in the set <tt>[cCdtmMl%]</tt>. These identify what kind of data
166
+ we&#8217;re interested in. They are detailed below.
167
+
168
+ </dd>
169
+ <dt><b>format directive</b></dt><dd>The numbers and assorted symbols that appears between <b>%</b> and a
170
+ <em>directive letter</em> is a format directive. It is comprised of an
171
+ integer specifying the field width followed optionally by a period and an
172
+ integer specifying the precision. The field width is the minimum number of
173
+ characters to copy from the data string while the precision is the maximum
174
+ number to copy. If the field width is preceded by a - sign, the data will
175
+ be left-justified. Otherwise, it is right-justified.
176
+
177
+ </dd>
178
+ <dt><b>directive</b></dt><dd>A statement that says, &#8220;I want this data to appear with this
179
+ (optional) particular format.&#8221; A directive starts with a <b>%</b> and
180
+ is followed by a format directive and terminates in a directive letter.
181
+
182
+ </dd>
183
+ </dl>
184
+ <h2>What the Directive Letters mean</h2>
185
+ <dl>
186
+ <dt><b>c</b></dt><dd>Produces a logger&#8217;s name. Fast.
187
+
188
+ </dd>
189
+ <dt><b>C</b></dt><dd>Produces a logger&#8217;s full name. Fast.
190
+
191
+ </dd>
192
+ <dt><b>d</b></dt><dd>Produces the time in a format specified by <b>date_pattern</b> or by
193
+ <b>date_method</b>. If neither is specified, the default will be used
194
+ (ISO8601). Slow.
195
+
196
+ </dd>
197
+ <dt><b>t</b></dt><dd>Produces the file and line number of the log event. The appearance varies
198
+ by Ruby version, but it is the same output returned by Kernel#caller[0].
199
+ Slow.
200
+
201
+ </dd>
202
+ <dt><b>m</b></dt><dd>The non-inspected log message. That is, to_s called on the object passed
203
+ into a log method. Fast.
204
+
205
+ </dd>
206
+ <dt><b>M</b></dt><dd>The message formatted by the <tt>format_object</tt> method in
207
+ BasicFormatter. It will pretty-print Exceptions, print Strings and inspect
208
+ everything else. Slow.
209
+
210
+ </dd>
211
+ <dt><b>l</b></dt><dd>The name of the level. That&#8217;s l as in Lambda. Fast.
212
+
213
+ </dd>
214
+ <dt><b>%</b></dt><dd>%% just prints a %. Any formatting is <em>probably</em> ignored. Fast.
215
+
216
+ </dd>
217
+ </dl>
218
+ <h2>Examples of directives:</h2>
219
+ <dl>
220
+ <dt><b>%d</b></dt><dd>Prints out the date according to our date_pattern or date_method. By
221
+ default, it looks like this: 2001-01-12 13:15:50
222
+
223
+ </dd>
224
+ <dt><b>%.120m</b></dt><dd>Prints out at most 120 characters of the log message.
225
+
226
+ </dd>
227
+ <dt><b>%15t</b></dt><dd>Prints the execution trace and pads it on the left with enough whitespace
228
+ to make the whole thing 15 chars.
229
+
230
+ </dd>
231
+ </dl>
232
+ <h2>Pattern String</h2>
233
+ <p>
234
+ A pattern string is simply a bunch of directives combined with the desired
235
+ format. For instance, to show the level in brackets followed by the date
236
+ and then the log message trimmed to 15 characters, we use the following
237
+ pattern:
238
+ </p>
239
+ <pre>
240
+ &quot;[%l] %d :: %.15m&quot; #=&gt; [DEBUG] 2001-01-12 13:15:50 :: This is a messa
241
+ </pre>
242
+ <p>
243
+ To create a PatternFormatter with this format:
244
+ </p>
245
+ <pre>
246
+ p = PatternFormatter.new(:pattern =&gt; &quot;[%l] %d :: %.15m&quot;)
247
+ </pre>
248
+ <h2>Formatting time</h2>
249
+ <p>
250
+ To format time, do one of the following:
251
+ </p>
252
+ <ul>
253
+ <li>Specify a date_pattern
254
+
255
+ </li>
256
+ <li>Specify what class method of Ruby&#8217;s <tt>Time</tt> class to call.
257
+
258
+ </li>
259
+ <li>Use the default format
260
+
261
+ </li>
262
+ </ul>
263
+ <p>
264
+ If neither date_pattern nor date_method is specified, the default date
265
+ format will be used. Currently, that would be ISO8601,
266
+ </p>
267
+ <p>
268
+ The date_pattern is exactly what one would pass to <tt>Time.strftime</tt>.
269
+ To specify a date_pattern, pass
270
+ <tt>:date_pattern=&gt;&quot;pattern&quot;</tt> to PatternFormat.new.
271
+ </p>
272
+ <p>
273
+ Alternatively, date_method can be specified to produce the output of a
274
+ specific <tt>Time</tt> method, such as <tt>usec</tt> or <tt>to_s</tt> or
275
+ any other zero argument <tt>Time</tt> method that produces a time. More
276
+ precisely, the method to call will be invoked on <tt>Time.now</tt>. To
277
+ specify a date_method, pass <tt>:date_method=&gt;'methodname'</tt> (or a
278
+ Symbol equivalent) to <tt>PatternFormatter.new</tt>.
279
+ </p>
280
+ <h1>XML Configuration</h1>
281
+ <p>
282
+ As explained in <a
283
+ href="../configurator_rb.html">log4r/configurator.rb</a>, the hash
284
+ arguments to PatternFormatter are <em>XML parameters</em>. Here&#8217;s an
285
+ example:
286
+ </p>
287
+ <pre>
288
+ &lt;formatter type=&quot;PatternFormatter&quot; pattern=&quot;[%l] %d :: %.15m&quot;&gt;
289
+ &lt;date_method&gt;usec&lt;/date_method&gt;
290
+ &lt;/formatter&gt;
291
+ </pre>
292
+ <h1>Performace considerations</h1>
293
+ <p>
294
+ The performance impact of using a particular directive letter is noted in
295
+ the <b>What the Directives Letters mean</b> section.
296
+ </p>
297
+ <p>
298
+ The performance impact of time formatting merits special attention. If you
299
+ aren&#8217;t aware yet, the Time class is kind of a kludge. Time.now.usec
300
+ happens to be faster than Time.now. If you&#8217;re concerned about
301
+ performance, please profile the various time methods and patterns.
302
+ </p>
303
+
304
+ </div>
305
+
306
+ <div id="validator-badges">
307
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
308
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
309
+ Rdoc Generator</a> 1.1.6</small>.</p>
310
+ </div>
311
+ </body>
312
+ </html>
313
+