Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / Logger / Base.html
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE html 
3      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
8   <title>Class: MCollective::Logger::Base</title>
9   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10   <meta http-equiv="Content-Script-Type" content="text/javascript" />
11   <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12   <script type="text/javascript">
13   // <![CDATA[
14
15   function popupCode( url ) {
16     window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17   }
18
19   function toggleCode( id ) {
20     if ( document.getElementById )
21       elem = document.getElementById( id );
22     else if ( document.all )
23       elem = eval( "document.all." + id );
24     else
25       return false;
26
27     elemStyle = elem.style;
28     
29     if ( elemStyle.display != "block" ) {
30       elemStyle.display = "block"
31     } else {
32       elemStyle.display = "none"
33     }
34
35     return true;
36   }
37   
38   // Make codeblocks hidden by default
39   document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40   
41   // ]]>
42   </script>
43
44 </head>
45 <body>
46
47
48
49     <div id="classHeader">
50         <table class="header-table">
51         <tr class="top-aligned-row">
52           <td><strong>Class</strong></td>
53           <td class="class-name-in-header">MCollective::Logger::Base</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../../files/lib/mcollective/logger/base_rb.html">
59                 lib/mcollective/logger/base.rb
60                 </a>
61         <br />
62             </td>
63         </tr>
64
65         <tr class="top-aligned-row">
66             <td><strong>Parent:</strong></td>
67             <td>
68                 Object
69             </td>
70         </tr>
71         </table>
72     </div>
73   <!-- banner header -->
74
75   <div id="bodyContent">
76
77
78
79   <div id="contextContent">
80
81     <div id="description">
82       <p>
83 A base class for logging providers.
84 </p>
85 <p>
86 Logging providers should provide the following:
87 </p>
88 <pre>
89    * start - all you need to do to setup your logging
90    * set_logging_level - set your logging to :info, :warn, etc
91    * valid_levels - a hash of maps from :info to your internal level name
92    * log - what needs to be done to log a specific message
93 </pre>
94
95     </div>
96
97
98    </div>
99
100     <div id="method-list">
101       <h3 class="section-bar">Methods</h3>
102
103       <div class="name-list">
104       <a href="#M000204">cycle_level</a>&nbsp;&nbsp;
105       <a href="#M000202">new</a>&nbsp;&nbsp;
106       <a href="#M000205">set_level</a>&nbsp;&nbsp;
107       <a href="#M000203">should_log?</a>&nbsp;&nbsp;
108       </div>
109     </div>
110
111   </div>
112
113
114     <!-- if includes -->
115
116     <div id="section">
117
118
119
120
121
122     <div id="attribute-list">
123       <h3 class="section-bar">Attributes</h3>
124
125       <div class="name-list">
126         <table>
127         <tr class="top-aligned-row context-row">
128           <td class="context-item-name">active_level</td>
129           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
130           <td class="context-item-desc"></td>
131         </tr>
132         </table>
133       </div>
134     </div>
135       
136
137
138     <!-- if method_list -->
139     <div id="methods">
140       <h3 class="section-bar">Public Class methods</h3>
141
142       <div id="method-M000202" class="method-detail">
143         <a name="M000202"></a>
144
145         <div class="method-heading">
146           <a href="#M000202" class="method-signature">
147           <span class="method-name">new</span><span class="method-args">()</span>
148           </a>
149         </div>
150       
151         <div class="method-description">
152           <p><a class="source-toggle" href="#"
153             onclick="toggleCode('M000202-source');return false;">[Source]</a></p>
154           <div class="method-source-code" id="M000202-source">
155 <pre>
156     <span class="ruby-comment cmt"># File lib/mcollective/logger/base.rb, line 14</span>
157 14:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
158 15:         <span class="ruby-ivar">@known_levels</span> = [<span class="ruby-identifier">:debug</span>, <span class="ruby-identifier">:info</span>, <span class="ruby-identifier">:warn</span>, <span class="ruby-identifier">:error</span>, <span class="ruby-identifier">:fatal</span>]
159 16: 
160 17:         <span class="ruby-comment cmt"># Sanity check the class that impliments the logging</span>
161 18:         <span class="ruby-ivar">@known_levels</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lvl</span><span class="ruby-operator">|</span>
162 19:           <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Logger class did not specify a map for #{lvl}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_levels</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">lvl</span>)
163 20:         <span class="ruby-keyword kw">end</span>
164 21:       <span class="ruby-keyword kw">end</span>
165 </pre>
166           </div>
167         </div>
168       </div>
169
170       <h3 class="section-bar">Public Instance methods</h3>
171
172       <div id="method-M000204" class="method-detail">
173         <a name="M000204"></a>
174
175         <div class="method-heading">
176           <a href="#M000204" class="method-signature">
177           <span class="method-name">cycle_level</span><span class="method-args">()</span>
178           </a>
179         </div>
180       
181         <div class="method-description">
182           <p>
183 Figures out the next level and sets it
184 </p>
185           <p><a class="source-toggle" href="#"
186             onclick="toggleCode('M000204-source');return false;">[Source]</a></p>
187           <div class="method-source-code" id="M000204-source">
188 <pre>
189     <span class="ruby-comment cmt"># File lib/mcollective/logger/base.rb, line 28</span>
190 28:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cycle_level</span>
191 29:         <span class="ruby-identifier">lvl</span> = <span class="ruby-identifier">get_next_level</span>
192 30:         <span class="ruby-identifier">set_level</span>(<span class="ruby-identifier">lvl</span>)
193 31: 
194 32:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">lvl</span>, <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-node">&quot;Logging level is now #{lvl.to_s.upcase}&quot;</span>)
195 33:       <span class="ruby-keyword kw">end</span>
196 </pre>
197           </div>
198         </div>
199       </div>
200
201       <div id="method-M000205" class="method-detail">
202         <a name="M000205"></a>
203
204         <div class="method-heading">
205           <a href="#M000205" class="method-signature">
206           <span class="method-name">set_level</span><span class="method-args">(level)</span>
207           </a>
208         </div>
209       
210         <div class="method-description">
211           <p>
212 Sets a <a href="Base.html#M000202">new</a> level and record it in
213 @active_level
214 </p>
215           <p><a class="source-toggle" href="#"
216             onclick="toggleCode('M000205-source');return false;">[Source]</a></p>
217           <div class="method-source-code" id="M000205-source">
218 <pre>
219     <span class="ruby-comment cmt"># File lib/mcollective/logger/base.rb, line 36</span>
220 36:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_level</span>(<span class="ruby-identifier">level</span>)
221 37:         <span class="ruby-identifier">set_logging_level</span>(<span class="ruby-identifier">level</span>)
222 38:         <span class="ruby-ivar">@active_level</span> = <span class="ruby-identifier">level</span>.<span class="ruby-identifier">to_sym</span>
223 39:       <span class="ruby-keyword kw">end</span>
224 </pre>
225           </div>
226         </div>
227       </div>
228
229       <div id="method-M000203" class="method-detail">
230         <a name="M000203"></a>
231
232         <div class="method-heading">
233           <a href="#M000203" class="method-signature">
234           <span class="method-name">should_log?</span><span class="method-args">(level)</span>
235           </a>
236         </div>
237       
238         <div class="method-description">
239           <p><a class="source-toggle" href="#"
240             onclick="toggleCode('M000203-source');return false;">[Source]</a></p>
241           <div class="method-source-code" id="M000203-source">
242 <pre>
243     <span class="ruby-comment cmt"># File lib/mcollective/logger/base.rb, line 23</span>
244 23:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">should_log?</span>(<span class="ruby-identifier">level</span>)
245 24:         <span class="ruby-ivar">@known_levels</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">level</span>) <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@known_levels</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@active_level</span>)
246 25:       <span class="ruby-keyword kw">end</span>
247 </pre>
248           </div>
249         </div>
250       </div>
251
252
253     </div>
254
255
256   </div>
257
258
259 <div id="validator-badges">
260   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
261 </div>
262
263 </body>
264 </html>