Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / Log.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::Log</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::Log</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../files/lib/mcollective/log_rb.html">
59                 lib/mcollective/log.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 simple class that allows logging at various levels.
84 </p>
85
86     </div>
87
88
89    </div>
90
91     <div id="method-list">
92       <h3 class="section-bar">Methods</h3>
93
94       <div class="name-list">
95       <a href="#M000440">check_level</a>&nbsp;&nbsp;
96       <a href="#M000439">config_and_check_level</a>&nbsp;&nbsp;
97       <a href="#M000447">configure</a>&nbsp;&nbsp;
98       <a href="#M000438">cycle_level</a>&nbsp;&nbsp;
99       <a href="#M000434">debug</a>&nbsp;&nbsp;
100       <a href="#M000436">error</a>&nbsp;&nbsp;
101       <a href="#M000450">execution_stack</a>&nbsp;&nbsp;
102       <a href="#M000435">fatal</a>&nbsp;&nbsp;
103       <a href="#M000449">from</a>&nbsp;&nbsp;
104       <a href="#M000432">info</a>&nbsp;&nbsp;
105       <a href="#M000437">instance</a>&nbsp;&nbsp;
106       <a href="#M000445">log</a>&nbsp;&nbsp;
107       <a href="#M000443">logexception</a>&nbsp;&nbsp;
108       <a href="#M000431">logger</a>&nbsp;&nbsp;
109       <a href="#M000444">logmsg</a>&nbsp;&nbsp;
110       <a href="#M000442">message_for</a>&nbsp;&nbsp;
111       <a href="#M000446">set_logger</a>&nbsp;&nbsp;
112       <a href="#M000448">unconfigure</a>&nbsp;&nbsp;
113       <a href="#M000441">valid_level?</a>&nbsp;&nbsp;
114       <a href="#M000433">warn</a>&nbsp;&nbsp;
115       </div>
116     </div>
117
118   </div>
119
120
121     <!-- if includes -->
122
123     <div id="section">
124
125
126     <div id="constants-list">
127       <h3 class="section-bar">Constants</h3>
128
129       <div class="name-list">
130         <table summary="Constants">
131         <tr class="top-aligned-row context-row">
132           <td class="context-item-name">VALID_LEVELS</td>
133           <td>=</td>
134           <td class="context-item-value">[:error, :fatal, :debug, :warn, :info]</td>
135         </tr>
136         </table>
137       </div>
138     </div>
139
140
141
142       
143
144
145     <!-- if method_list -->
146     <div id="methods">
147       <h3 class="section-bar">Public Class methods</h3>
148
149       <div id="method-M000440" class="method-detail">
150         <a name="M000440"></a>
151
152         <div class="method-heading">
153           <a href="#M000440" class="method-signature">
154           <span class="method-name">check_level</span><span class="method-args">(level)</span>
155           </a>
156         </div>
157       
158         <div class="method-description">
159           <p><a class="source-toggle" href="#"
160             onclick="toggleCode('M000440-source');return false;">[Source]</a></p>
161           <div class="method-source-code" id="M000440-source">
162 <pre>
163     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 55</span>
164 55:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_level</span>(<span class="ruby-identifier">level</span>)
165 56:         <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Unknown log level&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_level?</span>(<span class="ruby-identifier">level</span>)
166 57:       <span class="ruby-keyword kw">end</span>
167 </pre>
168           </div>
169         </div>
170       </div>
171
172       <div id="method-M000439" class="method-detail">
173         <a name="M000439"></a>
174
175         <div class="method-heading">
176           <a href="#M000439" class="method-signature">
177           <span class="method-name">config_and_check_level</span><span class="method-args">(level)</span>
178           </a>
179         </div>
180       
181         <div class="method-description">
182           <p><a class="source-toggle" href="#"
183             onclick="toggleCode('M000439-source');return false;">[Source]</a></p>
184           <div class="method-source-code" id="M000439-source">
185 <pre>
186     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 49</span>
187 49:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">config_and_check_level</span>(<span class="ruby-identifier">level</span>)
188 50:         <span class="ruby-identifier">configure</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@configured</span>
189 51:         <span class="ruby-identifier">check_level</span>(<span class="ruby-identifier">level</span>)
190 52:         <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">should_log?</span>(<span class="ruby-identifier">level</span>)
191 53:       <span class="ruby-keyword kw">end</span>
192 </pre>
193           </div>
194         </div>
195       </div>
196
197       <div id="method-M000447" class="method-detail">
198         <a name="M000447"></a>
199
200         <div class="method-heading">
201           <a href="#M000447" class="method-signature">
202           <span class="method-name">configure</span><span class="method-args">(logger=nil)</span>
203           </a>
204         </div>
205       
206         <div class="method-description">
207           <p>
208 configures the <a href="Log.html#M000431">logger</a> class, if the config
209 has not yet been loaded we default to the console logging class and do not
210 set @configured so that future calls to the <a
211 href="Log.html#M000445">log</a> method will keep attempting to <a
212 href="Log.html#M000447">configure</a> the <a
213 href="Log.html#M000431">logger</a> till we eventually get a logging
214 preference <a href="Log.html#M000449">from</a> the config module
215 </p>
216           <p><a class="source-toggle" href="#"
217             onclick="toggleCode('M000447-source');return false;">[Source]</a></p>
218           <div class="method-source-code" id="M000447-source">
219 <pre>
220      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 130</span>
221 130:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure</span>(<span class="ruby-identifier">logger</span>=<span class="ruby-keyword kw">nil</span>)
222 131:         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">logger</span>
223 132:           <span class="ruby-identifier">logger_type</span> = <span class="ruby-value str">&quot;console&quot;</span>
224 133: 
225 134:           <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">instance</span>
226 135: 
227 136:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">configured</span>
228 137:             <span class="ruby-identifier">logger_type</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">logger_type</span>
229 138:             <span class="ruby-ivar">@configured</span> = <span class="ruby-keyword kw">true</span>
230 139:           <span class="ruby-keyword kw">end</span>
231 140: 
232 141:           <span class="ruby-identifier">require</span> <span class="ruby-value str">&quot;mcollective/logger/%s_logger&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">logger_type</span>.<span class="ruby-identifier">downcase</span>
233 142: 
234 143:           <span class="ruby-identifier">logger_class</span> = <span class="ruby-constant">MCollective</span><span class="ruby-operator">::</span><span class="ruby-constant">Logger</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-value str">&quot;%s_logger&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">logger_type</span>.<span class="ruby-identifier">capitalize</span>)
235 144: 
236 145:           <span class="ruby-identifier">set_logger</span>(<span class="ruby-identifier">logger_class</span>.<span class="ruby-identifier">new</span>)
237 146:         <span class="ruby-keyword kw">else</span>
238 147:           <span class="ruby-identifier">set_logger</span>(<span class="ruby-identifier">logger</span>)
239 148:           <span class="ruby-ivar">@configured</span> = <span class="ruby-keyword kw">true</span>
240 149:         <span class="ruby-keyword kw">end</span>
241 150: 
242 151: 
243 152:         <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">start</span>
244 153:       <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
245 154:         <span class="ruby-ivar">@configured</span> = <span class="ruby-keyword kw">false</span>
246 155:         <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Could not start logger: #{e.class} #{e}&quot;</span>
247 156:       <span class="ruby-keyword kw">end</span>
248 </pre>
249           </div>
250         </div>
251       </div>
252
253       <div id="method-M000438" class="method-detail">
254         <a name="M000438"></a>
255
256         <div class="method-heading">
257           <a href="#M000438" class="method-signature">
258           <span class="method-name">cycle_level</span><span class="method-args">()</span>
259           </a>
260         </div>
261       
262         <div class="method-description">
263           <p>
264 increments the active <a href="Log.html#M000445">log</a> level
265 </p>
266           <p><a class="source-toggle" href="#"
267             onclick="toggleCode('M000438-source');return false;">[Source]</a></p>
268           <div class="method-source-code" id="M000438-source">
269 <pre>
270     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 45</span>
271 45:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cycle_level</span>
272 46:         <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">cycle_level</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@configured</span>
273 47:       <span class="ruby-keyword kw">end</span>
274 </pre>
275           </div>
276         </div>
277       </div>
278
279       <div id="method-M000434" class="method-detail">
280         <a name="M000434"></a>
281
282         <div class="method-heading">
283           <a href="#M000434" class="method-signature">
284           <span class="method-name">debug</span><span class="method-args">(msg)</span>
285           </a>
286         </div>
287       
288         <div class="method-description">
289           <p>
290 Logs at <a href="Log.html#M000434">debug</a> level
291 </p>
292           <p><a class="source-toggle" href="#"
293             onclick="toggleCode('M000434-source');return false;">[Source]</a></p>
294           <div class="method-source-code" id="M000434-source">
295 <pre>
296     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 25</span>
297 25:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">debug</span>(<span class="ruby-identifier">msg</span>)
298 26:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">:debug</span>, <span class="ruby-identifier">msg</span>)
299 27:       <span class="ruby-keyword kw">end</span>
300 </pre>
301           </div>
302         </div>
303       </div>
304
305       <div id="method-M000436" class="method-detail">
306         <a name="M000436"></a>
307
308         <div class="method-heading">
309           <a href="#M000436" class="method-signature">
310           <span class="method-name">error</span><span class="method-args">(msg)</span>
311           </a>
312         </div>
313       
314         <div class="method-description">
315           <p>
316 Logs at <a href="Log.html#M000436">error</a> level
317 </p>
318           <p><a class="source-toggle" href="#"
319             onclick="toggleCode('M000436-source');return false;">[Source]</a></p>
320           <div class="method-source-code" id="M000436-source">
321 <pre>
322     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 35</span>
323 35:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">msg</span>)
324 36:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">:error</span>, <span class="ruby-identifier">msg</span>)
325 37:       <span class="ruby-keyword kw">end</span>
326 </pre>
327           </div>
328         </div>
329       </div>
330
331       <div id="method-M000450" class="method-detail">
332         <a name="M000450"></a>
333
334         <div class="method-heading">
335           <a href="#M000450" class="method-signature">
336           <span class="method-name">execution_stack</span><span class="method-args">()</span>
337           </a>
338         </div>
339       
340         <div class="method-description">
341           <p>
342 this method is here to facilitate testing
343 </p>
344           <p><a class="source-toggle" href="#"
345             onclick="toggleCode('M000450-source');return false;">[Source]</a></p>
346           <div class="method-source-code" id="M000450-source">
347 <pre>
348      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 170</span>
349 170:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execution_stack</span>
350 171:         <span class="ruby-identifier">caller</span>
351 172:       <span class="ruby-keyword kw">end</span>
352 </pre>
353           </div>
354         </div>
355       </div>
356
357       <div id="method-M000435" class="method-detail">
358         <a name="M000435"></a>
359
360         <div class="method-heading">
361           <a href="#M000435" class="method-signature">
362           <span class="method-name">fatal</span><span class="method-args">(msg)</span>
363           </a>
364         </div>
365       
366         <div class="method-description">
367           <p>
368 Logs at <a href="Log.html#M000435">fatal</a> level
369 </p>
370           <p><a class="source-toggle" href="#"
371             onclick="toggleCode('M000435-source');return false;">[Source]</a></p>
372           <div class="method-source-code" id="M000435-source">
373 <pre>
374     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 30</span>
375 30:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fatal</span>(<span class="ruby-identifier">msg</span>)
376 31:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">:fatal</span>, <span class="ruby-identifier">msg</span>)
377 32:       <span class="ruby-keyword kw">end</span>
378 </pre>
379           </div>
380         </div>
381       </div>
382
383       <div id="method-M000449" class="method-detail">
384         <a name="M000449"></a>
385
386         <div class="method-heading">
387           <a href="#M000449" class="method-signature">
388           <span class="method-name">from</span><span class="method-args">()</span>
389           </a>
390         </div>
391       
392         <div class="method-description">
393           <p>
394 figures out the filename that called us
395 </p>
396           <p><a class="source-toggle" href="#"
397             onclick="toggleCode('M000449-source');return false;">[Source]</a></p>
398           <div class="method-source-code" id="M000449-source">
399 <pre>
400      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 164</span>
401 164:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">from</span>
402 165:         <span class="ruby-identifier">path</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">method</span> = <span class="ruby-identifier">execution_stack</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/:(\d+)/</span>)
403 166:         <span class="ruby-value str">&quot;%s:%s%s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">path</span>), <span class="ruby-identifier">line</span>, <span class="ruby-identifier">method</span>]
404 167:       <span class="ruby-keyword kw">end</span>
405 </pre>
406           </div>
407         </div>
408       </div>
409
410       <div id="method-M000432" class="method-detail">
411         <a name="M000432"></a>
412
413         <div class="method-heading">
414           <a href="#M000432" class="method-signature">
415           <span class="method-name">info</span><span class="method-args">(msg)</span>
416           </a>
417         </div>
418       
419         <div class="method-description">
420           <p>
421 Logs at <a href="Log.html#M000432">info</a> level
422 </p>
423           <p><a class="source-toggle" href="#"
424             onclick="toggleCode('M000432-source');return false;">[Source]</a></p>
425           <div class="method-source-code" id="M000432-source">
426 <pre>
427     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 15</span>
428 15:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">msg</span>)
429 16:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">:info</span>, <span class="ruby-identifier">msg</span>)
430 17:       <span class="ruby-keyword kw">end</span>
431 </pre>
432           </div>
433         </div>
434       </div>
435
436       <div id="method-M000437" class="method-detail">
437         <a name="M000437"></a>
438
439         <div class="method-heading">
440           <a href="#M000437" class="method-signature">
441           <span class="method-name">instance</span><span class="method-args">()</span>
442           </a>
443         </div>
444       
445         <div class="method-description">
446           <p>
447 handle old code that relied on this class being a singleton
448 </p>
449           <p><a class="source-toggle" href="#"
450             onclick="toggleCode('M000437-source');return false;">[Source]</a></p>
451           <div class="method-source-code" id="M000437-source">
452 <pre>
453     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 40</span>
454 40:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">instance</span>
455 41:         <span class="ruby-keyword kw">self</span>
456 42:       <span class="ruby-keyword kw">end</span>
457 </pre>
458           </div>
459         </div>
460       </div>
461
462       <div id="method-M000445" class="method-detail">
463         <a name="M000445"></a>
464
465         <div class="method-heading">
466           <a href="#M000445" class="method-signature">
467           <span class="method-name">log</span><span class="method-args">(level, msg, origin=nil)</span>
468           </a>
469         </div>
470       
471         <div class="method-description">
472           <p>
473 logs a message at a certain level
474 </p>
475           <p><a class="source-toggle" href="#"
476             onclick="toggleCode('M000445-source');return false;">[Source]</a></p>
477           <div class="method-source-code" id="M000445-source">
478 <pre>
479      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 106</span>
480 106:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">msg</span>, <span class="ruby-identifier">origin</span>=<span class="ruby-keyword kw">nil</span>)
481 107:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">config_and_check_level</span>(<span class="ruby-identifier">level</span>)
482 108: 
483 109:         <span class="ruby-identifier">origin</span> = <span class="ruby-identifier">from</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">origin</span>
484 110: 
485 111:         <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logger</span>
486 112:           <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">origin</span>, <span class="ruby-identifier">msg</span>)
487 113:         <span class="ruby-keyword kw">else</span>
488 114:           <span class="ruby-identifier">t</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%H:%M:%S&quot;</span>)
489 115: 
490 116:           <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{t}: #{level}: #{origin}: #{msg}&quot;</span>
491 117:         <span class="ruby-keyword kw">end</span>
492 118:       <span class="ruby-keyword kw">end</span>
493 </pre>
494           </div>
495         </div>
496       </div>
497
498       <div id="method-M000443" class="method-detail">
499         <a name="M000443"></a>
500
501         <div class="method-heading">
502           <a href="#M000443" class="method-signature">
503           <span class="method-name">logexception</span><span class="method-args">(msgid, level, e, backtrace=false, args={})</span>
504           </a>
505         </div>
506       
507         <div class="method-description">
508           <p><a class="source-toggle" href="#"
509             onclick="toggleCode('M000443-source');return false;">[Source]</a></p>
510           <div class="method-source-code" id="M000443-source">
511 <pre>
512     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 67</span>
513 67:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logexception</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">level</span>, <span class="ruby-identifier">e</span>, <span class="ruby-identifier">backtrace</span>=<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">args</span>={})
514 68:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">config_and_check_level</span>(<span class="ruby-identifier">level</span>)
515 69: 
516 70:         <span class="ruby-identifier">path</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">method</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">backtrace</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/:(\d+)/</span>)
517 71:         <span class="ruby-identifier">origin</span> = <span class="ruby-value str">&quot;%s:%s%s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">path</span>), <span class="ruby-identifier">line</span>, <span class="ruby-identifier">method</span>]
518 72: 
519 73:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">CodedError</span>)
520 74:           <span class="ruby-identifier">msg</span> = <span class="ruby-value str">&quot;%s: %s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">e</span>.<span class="ruby-identifier">code</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>]
521 75:         <span class="ruby-keyword kw">else</span>
522 76:           <span class="ruby-identifier">error_string</span> = <span class="ruby-value str">&quot;%s: %s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">e</span>.<span class="ruby-identifier">class</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>]
523 77:           <span class="ruby-identifier">msg</span> = <span class="ruby-identifier">message_for</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">args</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">:error</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">error_string</span>))
524 78:         <span class="ruby-keyword kw">end</span>
525 79: 
526 80:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">msg</span>, <span class="ruby-identifier">origin</span>)
527 81: 
528 82:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">backtrace</span>
529 83:           <span class="ruby-identifier">e</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
530 84:             <span class="ruby-identifier">log</span>(<span class="ruby-identifier">level</span>, <span class="ruby-value str">&quot;%s:          %s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">line</span>], <span class="ruby-identifier">origin</span>)
531 85:           <span class="ruby-keyword kw">end</span>
532 86:         <span class="ruby-keyword kw">end</span>
533 87:       <span class="ruby-keyword kw">end</span>
534 </pre>
535           </div>
536         </div>
537       </div>
538
539       <div id="method-M000431" class="method-detail">
540         <a name="M000431"></a>
541
542         <div class="method-heading">
543           <a href="#M000431" class="method-signature">
544           <span class="method-name">logger</span><span class="method-args">()</span>
545           </a>
546         </div>
547       
548         <div class="method-description">
549           <p>
550 Obtain the class name of the currently configured <a
551 href="Log.html#M000431">logger</a>
552 </p>
553           <p><a class="source-toggle" href="#"
554             onclick="toggleCode('M000431-source');return false;">[Source]</a></p>
555           <div class="method-source-code" id="M000431-source">
556 <pre>
557     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 10</span>
558 10:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logger</span>
559 11:         <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">class</span>
560 12:       <span class="ruby-keyword kw">end</span>
561 </pre>
562           </div>
563         </div>
564       </div>
565
566       <div id="method-M000444" class="method-detail">
567         <a name="M000444"></a>
568
569         <div class="method-heading">
570           <a href="#M000444" class="method-signature">
571           <span class="method-name">logmsg</span><span class="method-args">(msgid, default, level, args={})</span>
572           </a>
573         </div>
574       
575         <div class="method-description">
576           <p>
577 Logs a message at a certain level, the message must be a token that will be
578 looked up <a href="Log.html#M000449">from</a> the i18n localization
579 database
580 </p>
581 <p>
582 Messages can interprolate strings <a href="Log.html#M000449">from</a> the
583 args hash, a message with &quot;foo %{bar}&quot; in the localization
584 database will use args[:bar] for the value there, the interprolation is
585 handled by the i18n library itself
586 </p>
587           <p><a class="source-toggle" href="#"
588             onclick="toggleCode('M000444-source');return false;">[Source]</a></p>
589           <div class="method-source-code" id="M000444-source">
590 <pre>
591      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 97</span>
592  97:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logmsg</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">level</span>, <span class="ruby-identifier">args</span>={})
593  98:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">config_and_check_level</span>(<span class="ruby-identifier">level</span>)
594  99: 
595 100:         <span class="ruby-identifier">msg</span> = <span class="ruby-identifier">message_for</span>(<span class="ruby-identifier">msgid</span>, {<span class="ruby-identifier">:default</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">default</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">args</span>))
596 101: 
597 102:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">msg</span>)
598 103:       <span class="ruby-keyword kw">end</span>
599 </pre>
600           </div>
601         </div>
602       </div>
603
604       <div id="method-M000442" class="method-detail">
605         <a name="M000442"></a>
606
607         <div class="method-heading">
608           <a href="#M000442" class="method-signature">
609           <span class="method-name">message_for</span><span class="method-args">(msgid, args={})</span>
610           </a>
611         </div>
612       
613         <div class="method-description">
614           <p><a class="source-toggle" href="#"
615             onclick="toggleCode('M000442-source');return false;">[Source]</a></p>
616           <div class="method-source-code" id="M000442-source">
617 <pre>
618     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 63</span>
619 63:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message_for</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">args</span>={})
620 64:         <span class="ruby-value str">&quot;%s: %s&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">msgid</span>, <span class="ruby-constant">Util</span>.<span class="ruby-identifier">t</span>(<span class="ruby-identifier">msgid</span>, <span class="ruby-identifier">args</span>)]
621 65:       <span class="ruby-keyword kw">end</span>
622 </pre>
623           </div>
624         </div>
625       </div>
626
627       <div id="method-M000446" class="method-detail">
628         <a name="M000446"></a>
629
630         <div class="method-heading">
631           <a href="#M000446" class="method-signature">
632           <span class="method-name">set_logger</span><span class="method-args">(logger)</span>
633           </a>
634         </div>
635       
636         <div class="method-description">
637           <p>
638 sets the <a href="Log.html#M000431">logger</a> class to use
639 </p>
640           <p><a class="source-toggle" href="#"
641             onclick="toggleCode('M000446-source');return false;">[Source]</a></p>
642           <div class="method-source-code" id="M000446-source">
643 <pre>
644      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 121</span>
645 121:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_logger</span>(<span class="ruby-identifier">logger</span>)
646 122:         <span class="ruby-ivar">@logger</span> = <span class="ruby-identifier">logger</span>
647 123:       <span class="ruby-keyword kw">end</span>
648 </pre>
649           </div>
650         </div>
651       </div>
652
653       <div id="method-M000448" class="method-detail">
654         <a name="M000448"></a>
655
656         <div class="method-heading">
657           <a href="#M000448" class="method-signature">
658           <span class="method-name">unconfigure</span><span class="method-args">()</span>
659           </a>
660         </div>
661       
662         <div class="method-description">
663           <p><a class="source-toggle" href="#"
664             onclick="toggleCode('M000448-source');return false;">[Source]</a></p>
665           <div class="method-source-code" id="M000448-source">
666 <pre>
667      <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 158</span>
668 158:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unconfigure</span>
669 159:         <span class="ruby-ivar">@configured</span> = <span class="ruby-keyword kw">false</span>
670 160:         <span class="ruby-identifier">set_logger</span>(<span class="ruby-keyword kw">nil</span>)
671 161:       <span class="ruby-keyword kw">end</span>
672 </pre>
673           </div>
674         </div>
675       </div>
676
677       <div id="method-M000441" class="method-detail">
678         <a name="M000441"></a>
679
680         <div class="method-heading">
681           <a href="#M000441" class="method-signature">
682           <span class="method-name">valid_level?</span><span class="method-args">(level)</span>
683           </a>
684         </div>
685       
686         <div class="method-description">
687           <p><a class="source-toggle" href="#"
688             onclick="toggleCode('M000441-source');return false;">[Source]</a></p>
689           <div class="method-source-code" id="M000441-source">
690 <pre>
691     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 59</span>
692 59:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_level?</span>(<span class="ruby-identifier">level</span>)
693 60:         <span class="ruby-constant">VALID_LEVELS</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">level</span>)
694 61:       <span class="ruby-keyword kw">end</span>
695 </pre>
696           </div>
697         </div>
698       </div>
699
700       <div id="method-M000433" class="method-detail">
701         <a name="M000433"></a>
702
703         <div class="method-heading">
704           <a href="#M000433" class="method-signature">
705           <span class="method-name">warn</span><span class="method-args">(msg)</span>
706           </a>
707         </div>
708       
709         <div class="method-description">
710           <p>
711 Logs at <a href="Log.html#M000433">warn</a> level
712 </p>
713           <p><a class="source-toggle" href="#"
714             onclick="toggleCode('M000433-source');return false;">[Source]</a></p>
715           <div class="method-source-code" id="M000433-source">
716 <pre>
717     <span class="ruby-comment cmt"># File lib/mcollective/log.rb, line 20</span>
718 20:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warn</span>(<span class="ruby-identifier">msg</span>)
719 21:         <span class="ruby-identifier">log</span>(<span class="ruby-identifier">:warn</span>, <span class="ruby-identifier">msg</span>)
720 22:       <span class="ruby-keyword kw">end</span>
721 </pre>
722           </div>
723         </div>
724       </div>
725
726
727     </div>
728
729
730   </div>
731
732
733 <div id="validator-badges">
734   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
735 </div>
736
737 </body>
738 </html>