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,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: base.rb [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 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:06 -0800 2004</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>log4r/config</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,76 @@
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: config.rb [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 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:06 -0800 2004</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ </ul>
35
+ </dd>
36
+
37
+
38
+
39
+ </dl>
40
+ </div>
41
+
42
+ <div id="documentation">
43
+
44
+ <div class="description">
45
+ <h2>Description</h2>
46
+ <pre>
47
+ :nodoc:
48
+ Version:: $Id: config.rb,v 1.1.1.1 2004/03/19 03:31:06 fando Exp $
49
+ ---
50
+ TODO: catch unparsed parameters #{FOO} and die
51
+ ---
52
+ </pre>
53
+ <p>
54
+ :nodoc:
55
+ </p>
56
+ <pre>
57
+ ---
58
+ </pre>
59
+ <p>
60
+ :nodoc:
61
+ </p>
62
+ <pre>
63
+ ---
64
+ :nodoc:
65
+ ---
66
+ :nodoc:
67
+ ---
68
+ :nodoc:
69
+ </pre>
70
+
71
+ </div>
72
+
73
+ </div>
74
+ </body>
75
+ </html>
76
+
@@ -0,0 +1,370 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
+
9
+ <title>File: configurator.rb [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 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:06 -0800 2004</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>log4r/logger</li>
35
+
36
+ <li>log4r/outputter/staticoutputter</li>
37
+
38
+ <li>log4r/lib/xmlloader</li>
39
+
40
+ <li>log4r/logserver</li>
41
+
42
+ <li>log4r/outputter/remoteoutputter</li>
43
+
44
+ </ul>
45
+ </dd>
46
+
47
+
48
+
49
+ </dl>
50
+ </div>
51
+
52
+ <div id="documentation">
53
+
54
+ <div class="description">
55
+ <h2>Description</h2>
56
+ <h1>Configuring <a href="../Log4r.html">Log4r</a> with <a href="../Log4r/Configurator.html">Log4r::Configurator</a></h1>
57
+ <p>
58
+ The Configurator class allows one to set up <a
59
+ href="../Log4r.html">Log4r</a> via XML. Additionally, Configurator contains
60
+ methods to configure any <a href="../Log4r.html">Log4r</a> defaults. In
61
+ particular, Configurator provides a method to customize the logging levels.
62
+ </p>
63
+ <p>
64
+ <a href="../Log4r.html">Log4r</a> is also configurable using YAML. For
65
+ that, there is a class similar to Configurator called <a
66
+ href="../Log4r/YamlConfigurator.html">Log4r::YamlConfigurator</a>. Please
67
+ see <a href="yamlconfigurator_rb.html">log4r/yamlconfigurator.rb</a> for
68
+ details.
69
+ </p>
70
+ <p>
71
+ REXML is required for XML configuration. Get REXML at <a
72
+ href="http://www.ruby-lang.org/en/raa-list.rhtml?name=REXML">www.ruby-lang.org/en/raa-list.rhtml?name=REXML</a>
73
+ </p>
74
+ <p>
75
+ To use the Configurator class,
76
+ </p>
77
+ <pre>
78
+ require 'log4r/configurator'
79
+ </pre>
80
+ <h2>Custom Levels</h2>
81
+ <p>
82
+ Suppose you want the following levels and ranks:
83
+ </p>
84
+ <pre>
85
+ Foo &lt; Bar &lt; Baz
86
+ </pre>
87
+ <p>
88
+ This is easily accomplished:
89
+ </p>
90
+ <pre>
91
+ Configurator.custom_levels('Foo', 'Bar', :Baz)
92
+ </pre>
93
+ <p>
94
+ The method accepts strings or symbols. However, custom levels must have
95
+ names that are valid for Ruby constants. Also, custom levels should be set
96
+ before anything else is done with <a href="../Log4r.html">Log4r</a>,
97
+ otherwise the default levels will be loaded.
98
+ </p>
99
+ <p>
100
+ You can set custom levels in XML. That&#8217;s covered in the following
101
+ section.
102
+ </p>
103
+ <h2>XML Configuration</h2>
104
+ <p>
105
+ If you have REXML, you can configure <a href="../Log4r.html">Log4r</a> with
106
+ XML. To do this, first write an XML configuration (which you can learn by
107
+ studying this document and the examples provided in the distribution) and
108
+ then load up the XML from within your program as follows:
109
+ </p>
110
+ <pre>
111
+ Configurator.load_xml_file('/path/to/file.xml')
112
+ </pre>
113
+ <p>
114
+ The <a href="../Log4r.html">Log4r</a> XML configuration system is very
115
+ flexible and powerful. In fact, it is somewhat preferable to configuring <a
116
+ href="../Log4r.html">Log4r</a> in Ruby. In order to take full advantage of
117
+ this feature, there are several concepts one must know. They are covered in
118
+ the following three sections.
119
+ </p>
120
+ <h3>Concept: XML Directives</h3>
121
+ <p>
122
+ The expressive power of Ruby has enabled a feature I call <em>XML
123
+ directives</em>. An XML directive is a name-value pair belonging to some
124
+ element. It may be represented as an attribute (name=&#8220;value&#8221;)
125
+ of the element, or as a child (<name>value</name>) of the element.
126
+ Therefore, you are free to specify information about an object as either an
127
+ attribute or an element. An example should clarify:
128
+ </p>
129
+ <pre>
130
+ &lt;object data=&quot;value&quot;/&gt;
131
+ </pre>
132
+ <p>
133
+ Is equivalent to:
134
+ </p>
135
+ <pre>
136
+ &lt;object&gt;
137
+ &lt;data&gt;value&lt;/data&gt;
138
+ &lt;/object&gt;
139
+ </pre>
140
+ <p>
141
+ You can assume this behavior except where noted elsewhere in the API.
142
+ </p>
143
+ <h3>Concept: XML Parameters</h3>
144
+ <p>
145
+ A scheme which I call <em>XML parameters</em> enables one to utilize the
146
+ XML configuratin system for custom Outputters and Formatters. This requires
147
+ <b>no</b> extra work on your part, so long as your objects are set up using
148
+ hash arguments and can decode string values. That is, once you&#8217;ve
149
+ written a custom Outputter, it is automatically configurable in XML without
150
+ having to write any extra code.
151
+ </p>
152
+ <p>
153
+ An XML parameter is analogous to a hash argument to some object&#8217;s
154
+ <tt>new</tt> method. Consider these hash arguments to FileOutputter:
155
+ </p>
156
+ <pre>
157
+ :filename =&gt; '/path/to/logs/my.log'
158
+ :trunc =&gt; 'true'
159
+ </pre>
160
+ <p>
161
+ We can specify them in XML like this:
162
+ </p>
163
+ <pre>
164
+ &lt;outputter type=&quot;FileOutputter&quot; trunc=&quot;true&quot;&gt;
165
+ &lt;filename&gt;/path/to/logs/my.log&lt;/filename&gt;
166
+ ...
167
+ </pre>
168
+ <p>
169
+ The name of the element/attribute is just the name of the parameter. Note
170
+ that the input will be a string, thus it&#8217;s wise to convert the data
171
+ in from strings in any custom classes (to_i for integers, etc). Now
172
+ let&#8217;s suppose you have defined a custom Outputter named MyOutputter
173
+ with the following additional hash args:
174
+ </p>
175
+ <pre>
176
+ :myarg1 =&gt; 'foo'
177
+ :myarg2 =&gt; 123
178
+ </pre>
179
+ <p>
180
+ Automagically, you can configure your Outputter like so:
181
+ </p>
182
+ <pre>
183
+ &lt;outputter type=&quot;MyOutputter&quot; myarg2=&quot;123&quot;&gt;
184
+ &lt;myarg1&gt;foo&lt;/myarg1&gt;
185
+ ...
186
+ </pre>
187
+ <p>
188
+ Isn&#8217;t that nice? <tt>:-)</tt>
189
+ </p>
190
+ <h3>Concept: Variable Substitution</h3>
191
+ <p>
192
+ To kill the need for preprocessors, Configurator provides a means of
193
+ variable substitution for XML parameters at runtime. If you specify
194
+ <tt>#{foo}</tt> in an XML parameter value, Configurator will replace it
195
+ with the value of &#8216;foo&#8217; in its parameter hashtable. The primary
196
+ idea is that you can figure stuff out in your program, say the log path,
197
+ and relay that information to the XML while it&#8217;s being loaded.
198
+ Secondarily, it is a way to have aliases within an XML document.
199
+ </p>
200
+ <p>
201
+ There are two ways to tell Configurator about these variables. The first
202
+ method we&#8217;ll cover is done within a Ruby program with Configurator[].
203
+ </p>
204
+ <pre>
205
+ Configurator['logpath'] = '/path/to/logs'
206
+ </pre>
207
+ <p>
208
+ Thereafter, any occurence of <tt>#{logpath}</tt> in each and every XML
209
+ parameter will be substituted with &#8216;/path/to/logs&#8217;. For
210
+ example:
211
+ </p>
212
+ <pre>
213
+ &lt;filename&gt;#{logpath}/mylog.log&lt;/filename&gt;
214
+ </pre>
215
+ <p>
216
+ Becomes,
217
+ </p>
218
+ <pre>
219
+ &lt;filename&gt;/path/to/logs/mylog.log&lt;/filename&gt;
220
+ </pre>
221
+ <p>
222
+ Aside from Configurator[], another way to define XML parameter variables is
223
+ to define <tt>parameters</tt> under the <tt>&lt;pre_config&gt;</tt> element
224
+ of an XML configuration:
225
+ </p>
226
+ <pre>
227
+ &lt;pre_config&gt;
228
+ &lt;parameter name=&quot;logpath&quot; value=&quot;/path/to/logs'/&gt;
229
+ &lt;parameter name=&quot;other&quot; value=&quot;somethingelse'/&gt;
230
+ ...
231
+ &lt;/pre_config&gt;
232
+ </pre>
233
+ <p>
234
+ Alternatively,
235
+ </p>
236
+ <pre>
237
+ &lt;pre_config&gt;
238
+ &lt;parameters&gt;
239
+ &lt;logpath&gt;/path/to/logs&lt;/logpath&gt;
240
+ &lt;other&gt;somethingelse&lt;/other&gt;
241
+ ...
242
+ &lt;/parameters&gt;
243
+ ...
244
+ </pre>
245
+ <p>
246
+ The end result is the same as using Configurator[]. However, this method is
247
+ not dynamic. Configurator[] should be used when you want to set variables
248
+ from within Ruby.
249
+ </p>
250
+ <h1>XML Grammar</h1>
251
+ <p>
252
+ And now, here&#8217;s the XML grammar we use to configure <a
253
+ href="../Log4r.html">Log4r</a>.
254
+ </p>
255
+ <h2>Root Element</h2>
256
+ <p>
257
+ The root element is <tt>&lt;log4r_config&gt;</tt>. It can be embedded as a
258
+ node of any other element in an XML file. For instance:
259
+ </p>
260
+ <pre>
261
+ &lt;my-xml-thing&gt;
262
+ &lt;customize-libraries&gt;
263
+ &lt;log4r_config&gt;
264
+ &lt;!-- log4r configuratin goes here --&gt;
265
+ &lt;/log4r_config&gt;
266
+ ...
267
+ </pre>
268
+ <h2>Pre-config element</h2>
269
+ <p>
270
+ The pre_config element is a child of log4r_config and contains:
271
+ </p>
272
+ <ul>
273
+ <li>&#8216;custom_levels&#8217; element
274
+
275
+ </li>
276
+ <li>&#8216;global&#8217; element
277
+
278
+ </li>
279
+ <li>&#8216;parameters&#8217; element
280
+
281
+ </li>
282
+ <li>any number of &#8216;parameter&#8217; elements
283
+
284
+ </li>
285
+ </ul>
286
+ <h3>Pre_config: Custom Levels</h3>
287
+ <p>
288
+ The custom_levels element is not an <em>XML directive</em> of pre_config.
289
+ It <b>must</b> be specified like this:
290
+ </p>
291
+ <pre>
292
+ &lt;custom_levels&gt;Foo, Bar, Baz&lt;/custom_levels&gt;
293
+ </pre>
294
+ <p>
295
+ And <b>not</b> like this:
296
+ </p>
297
+ <pre>
298
+ &lt;!-- NOT SUPPORTED --&gt;
299
+ &lt;custom_levels levels=&quot;Foo, Bar, Baz&quot;/&gt;
300
+ </pre>
301
+ <h3>Pre_config: Global Level</h3>
302
+ <pre>
303
+ &lt;global level=&quot;DEBUG&quot;/&gt;
304
+ </pre>
305
+ <p>
306
+ or
307
+ </p>
308
+ <pre>
309
+ &lt;global&gt;&lt;level&gt;DEBUG&lt;/level&gt;&lt;/global&gt;
310
+ </pre>
311
+ <p>
312
+ Here, level is an XML directive of global.
313
+ </p>
314
+ <h3>Pre_config: Parameters</h3>
315
+ <p>
316
+ Parameters are variables that will be substituted later on. Please see the
317
+ <b>Concept: Variable Substitution</b> section above. Parameters are <em>XML
318
+ Directives</em>, which means they can be expressed using elements or
319
+ attributes. Here is an example:
320
+ </p>
321
+ <pre>
322
+ &lt;parameter name=&quot;param name 1&quot; value=&quot;param value 1&quot;&gt;
323
+ &lt;parameter name=&quot;param name 2&quot; value=&quot;param value 2&quot;&gt;
324
+ ...
325
+ &lt;parameters&gt;
326
+ &lt;param3&gt;value3&lt;/param3&gt;
327
+ &lt;param4&gt;value3&lt;/param4&gt;
328
+ ...
329
+ </pre>
330
+ <h3>Pre_config: Complete Example</h3>
331
+ <pre>
332
+ &lt;log4r_config&gt;
333
+
334
+ &lt;pre_config&gt;
335
+ &lt;custom_levels&gt;
336
+ Foo,Bar, Baz
337
+ &lt;/custom_levels&gt;
338
+ &lt;global level=&quot;Bar&quot;/&gt;
339
+ &lt;parameters&gt;
340
+ &lt;logpath&gt;/var/log/foo&lt;/logpath&gt;
341
+ &lt;mypattern&gt;%l [%d] %m&lt;/mypattern&gt;
342
+ &lt;/parameters&gt;
343
+ &lt;/pre_config&gt;
344
+
345
+ &lt;!-- define some outputters and loggers --&gt;
346
+
347
+ &lt;/log4r_config&gt;
348
+ </pre>
349
+ <h2>Configuring <a href="../Log4r.html">Log4r</a> Objects</h2>
350
+ <p>
351
+ The XML configuration grammar for Loggers, Outputters and the like are
352
+ covered in the usage guidelines for those classes.
353
+ </p>
354
+ <h2>Order Doesn&#8217;t Matter</h2>
355
+ <p>
356
+ You can (it is hoped) define any of the XML objects in any order desired.
357
+ </p>
358
+ <h2>Other Info</h2>
359
+ <table>
360
+ <tr><td valign="top">Version:</td><td>$Id: configurator.rb,v 1.1.1.1 2004/03/19 03:31:06 fando Exp $
361
+
362
+ </td></tr>
363
+ </table>
364
+
365
+ </div>
366
+
367
+ </div>
368
+ </body>
369
+ </html>
370
+