~ubuntu-branches/ubuntu/raring/screenlets/raring

« back to all changes in this revision

Viewing changes to docs/epydoc/screenlets.logger-pysrc.html

  • Committer: Package Import Robot
  • Author(s): Julien Lavergne
  • Date: 2012-02-12 22:47:27 UTC
  • mto: This revision was merged to the branch mainline in revision 25.
  • Revision ID: package-import@ubuntu.com-20120212224727-kjobpgxp3tmw95qd
Tags: upstream-0.1.6
ImportĀ upstreamĀ versionĀ 0.1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
      <th class="navbar" align="right" width="100%">
35
35
        <table border="0" cellpadding="0" cellspacing="0">
36
36
          <tr><th class="navbar" align="center"
37
 
            >Screenlets 0.1.4</th>
 
37
            >Screenlets 0.1.6</th>
38
38
          </tr></table></th>
39
39
  </tr>
40
40
</table>
61
61
</table>
62
62
<h1 class="epydoc">Source Code for <a href="screenlets.logger-module.html">Module screenlets.logger</a></h1>
63
63
<pre class="py-src">
64
 
<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># This application is released under the GNU General Public License </tt> </tt>
65
 
<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"># v3 (or, at your option, any later version). You can find the full </tt> </tt>
66
 
<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"># text of the license under http://www.gnu.org/licenses/gpl.txt. </tt> </tt>
67
 
<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"># By using, editing and/or distributing this software you agree to </tt> </tt>
68
 
<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># the terms and conditions of this license. </tt> </tt>
69
 
<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"># Thank you for using free software!</tt> </tt>
70
 
<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"> </tt>
71
 
<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"># Logger and command line parser for universal-applets.</tt> </tt>
72
 
<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"># (c) 2008 Przemyslaw Firszt (pefi) &lt;pefi@epf.pl&gt;</tt> </tt>
73
 
<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"> </tt>
74
 
<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
75
 
<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
76
 
<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
77
 
<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"> </tt>
78
 
<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Package screenlets=screenlets-module.html"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-0', 'screenlets', 'link-0');">screenlets</a></tt> </tt>
 
64
<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># This program is free software: you can redistribute it and/or modify</tt> </tt>
 
65
<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
 
66
<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"># the Free Software Foundation, either version 3 of the License, or</tt> </tt>
 
67
<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"># (at your option) any later version.</tt> </tt>
 
68
<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
69
<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
 
70
<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
 
71
<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
 
72
<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
 
73
<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
74
<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
 
75
<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
 
76
<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
 
77
<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"># Logger and command line parser for universal-applets.</tt> </tt>
 
78
<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"># (c) 2008 Przemyslaw Firszt (pefi) &lt;pefi@epf.pl&gt;</tt> </tt>
79
79
<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"> </tt>
80
 
<a name="logger_init"></a><div id="logger_init-def"><a name="L17"></a><tt class="py-lineno">17</tt> <a class="py-toggle" href="#" id="logger_init-toggle" onclick="return toggle('logger_init');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.logger-module.html#logger_init">logger_init</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
81
 
</div><div id="logger_init-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="logger_init-expanded"><a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line">        <tt class="py-docstring">"""Initialize logger"""</tt> </tt>
82
 
<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line">        <tt id="link-1" class="py-name" targets="Package screenlets.options=screenlets.options-module.html"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-1', 'options', 'link-1');">options</a></tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-2', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Variable screenlets.COMMAND_LINE_OPTIONS=screenlets-module.html#COMMAND_LINE_OPTIONS"><a title="screenlets.COMMAND_LINE_OPTIONS" class="py-name" href="#" onclick="return doclink('link-3', 'COMMAND_LINE_OPTIONS', 'link-3');">COMMAND_LINE_OPTIONS</a></tt> </tt>
83
 
<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line">        <tt class="py-comment">#create main logger</tt> </tt>
84
 
<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt id="link-4" class="py-name" targets="Variable screenlets.logger.log=screenlets.logger-module.html#log"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-4', 'log', 'link-4');">log</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-5', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Variable screenlets.LOG_NAME=screenlets-module.html#LOG_NAME"><a title="screenlets.LOG_NAME" class="py-name" href="#" onclick="return doclink('link-6', 'LOG_NAME', 'link-6');">LOG_NAME</a></tt><tt class="py-op">)</tt> </tt>
85
 
<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-7" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-7', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Variable screenlets.LOG_DISABLED=screenlets-module.html#LOG_DISABLED"><a title="screenlets.LOG_DISABLED" class="py-name" href="#" onclick="return doclink('link-8', 'LOG_DISABLED', 'link-8');">LOG_DISABLED</a></tt><tt class="py-op">:</tt> </tt>
86
 
<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">                <tt class="py-comment">#set log output</tt> </tt>
87
 
<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-9" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-9', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable screenlets.LOG_OUTPUT=screenlets-module.html#LOG_OUTPUT"><a title="screenlets.LOG_OUTPUT" class="py-name" href="#" onclick="return doclink('link-10', 'LOG_OUTPUT', 'link-10');">LOG_OUTPUT</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"STDOUT"</tt><tt class="py-op">:</tt> </tt>
88
 
<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">)</tt> </tt>
89
 
<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-11" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-11', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="screenlets.LOG_OUTPUT" class="py-name" href="#" onclick="return doclink('link-12', 'LOG_OUTPUT', 'link-10');">LOG_OUTPUT</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"STDERR"</tt><tt class="py-op">:</tt> </tt>
90
 
<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
91
 
<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-13" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-13', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="screenlets.LOG_OUTPUT" class="py-name" href="#" onclick="return doclink('link-14', 'LOG_OUTPUT', 'link-10');">LOG_OUTPUT</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"FILE"</tt><tt class="py-op">:</tt> </tt>
92
 
<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
93
 
<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">                                <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">FileHandler</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-15', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Variable screenlets.LOG_FILE=screenlets-module.html#LOG_FILE"><a title="screenlets.LOG_FILE" class="py-name" href="#" onclick="return doclink('link-16', 'LOG_FILE', 'link-16');">LOG_FILE</a></tt><tt class="py-op">,</tt> <tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
94
 
<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
95
 
<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">                                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Cannot create %s logfile. Using STDERR instead."</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-17', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="screenlets.LOG_FILE" class="py-name" href="#" onclick="return doclink('link-18', 'LOG_FILE', 'link-16');">LOG_FILE</a></tt><tt class="py-op">)</tt> </tt>
96
 
<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">                                <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
97
 
<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
98
 
<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown output type: %s, using STDERR instead."</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-19', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="screenlets.LOG_FILE" class="py-name" href="#" onclick="return doclink('link-20', 'LOG_FILE', 'link-16');">LOG_FILE</a></tt><tt class="py-op">)</tt> </tt>
99
 
<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
100
 
<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">                <tt class="py-comment">#check if LOG_LEVEL is valid and set</tt> </tt>
101
 
<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
102
 
<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">                        <tt class="py-name">level</tt> <tt class="py-op">=</tt> <tt class="py-number">51</tt> <tt class="py-op">-</tt> <tt class="py-op">(</tt><tt class="py-number">10</tt> <tt class="py-op">*</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-21', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Variable screenlets.LOG_LEVEL=screenlets-module.html#LOG_LEVEL"><a title="screenlets.LOG_LEVEL" class="py-name" href="#" onclick="return doclink('link-22', 'LOG_LEVEL', 'link-22');">LOG_LEVEL</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt>  <tt class="py-comment">#multiply by 10 and substract from 51 to fit into allowed range</tt> </tt>
103
 
<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">                        <tt id="link-23" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-23', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">)</tt> </tt>
104
 
<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">)</tt> </tt>
105
 
<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
106
 
<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"LOG_LEVEL %s is not allowed. Use -h to get more information. Using LOG_LEVEL=5"</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-24', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="screenlets.LOG_LEVEL" class="py-name" href="#" onclick="return doclink('link-25', 'LOG_LEVEL', 'link-22');">LOG_LEVEL</a></tt><tt class="py-op">)</tt> </tt>
107
 
<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">                        <tt id="link-26" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-26', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-comment">#command  line paramete was wrong, but user wanted logging ..."1" means log everything</tt> </tt>
108
 
<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
109
 
<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
110
 
<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">                <tt class="py-comment">#do not log anything but we still have to provide logger to avoid errors</tt> </tt>
111
 
<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">                <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
112
 
<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">                <tt class="py-comment">#screenlets.LOG_LEVEL = 51</tt> </tt>
113
 
<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">                <tt id="link-27" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-27', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">51</tt><tt class="py-op">)</tt> </tt>
114
 
<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">                <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">51</tt><tt class="py-op">)</tt> </tt>
115
 
<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">         </tt>
116
 
<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">        <tt class="py-comment">#set the format of log message</tt> </tt>
117
 
<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-name">log_formatter</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">Formatter</tt><tt class="py-op">(</tt><tt class="py-string">"%(asctime)s - %(levelname)s - %(message)s"</tt><tt class="py-op">)</tt> </tt>
118
 
<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setFormatter</tt><tt class="py-op">(</tt><tt class="py-name">log_formatter</tt><tt class="py-op">)</tt> </tt>
119
 
<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">         </tt>
120
 
<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-comment">#add file to logger</tt> </tt>
121
 
<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt id="link-28" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-28', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">addHandler</tt><tt class="py-op">(</tt><tt class="py-name">log_file</tt><tt class="py-op">)</tt> </tt>
122
 
<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-29" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-29', 'log', 'link-4');">log</a></tt> </tt>
123
 
</div><a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"> </tt>
124
 
<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line"><tt id="link-30" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-30', 'log', 'link-4');">log</a></tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Function screenlets.logger.logger_init()=screenlets.logger-module.html#logger_init"><a title="screenlets.logger.logger_init" class="py-name" href="#" onclick="return doclink('link-31', 'logger_init', 'link-31');">logger_init</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
125
 
<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"> </tt>
126
 
<a name="get_default_logger"></a><div id="get_default_logger-def"><a name="L63"></a><tt class="py-lineno">63</tt> <a class="py-toggle" href="#" id="get_default_logger-toggle" onclick="return toggle('get_default_logger');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.logger-module.html#get_default_logger">get_default_logger</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
127
 
</div><div id="get_default_logger-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="get_default_logger-expanded"><a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-docstring">"""This function returns default logger"""</tt> </tt>
128
 
<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">        <tt class="py-keyword">global</tt> <tt id="link-32" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-32', 'log', 'link-4');">log</a></tt> </tt>
129
 
<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-comment"># Try to return the logger (an exception mean that the logger has not yet been initialized)</tt> </tt>
130
 
<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
131
 
<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt id="link-33" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-33', 'log', 'link-4');">log</a></tt> </tt>
132
 
<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
133
 
<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">                <tt id="link-34" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-34', 'log', 'link-4');">log</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="screenlets.logger.logger_init" class="py-name" href="#" onclick="return doclink('link-35', 'logger_init', 'link-31');">logger_init</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
134
 
<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-36" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-36', 'log', 'link-4');">log</a></tt><tt class="py-op">:</tt> </tt>
135
 
<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">                        <tt id="link-37" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-37', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method screenlets.services.ScreenletService.debug()=screenlets.services.ScreenletService-class.html#debug"><a title="screenlets.services.ScreenletService.debug" class="py-name" href="#" onclick="return doclink('link-38', 'debug', 'link-38');">debug</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s: Logger initialized"</tt> <tt class="py-op">%</tt><tt id="link-39" class="py-name" targets="Variable screenlets.Screenlet.__name__=screenlets.Screenlet-class.html#__name__,Variable screenlets.ScreenletTheme.__name__=screenlets.ScreenletTheme-class.html#__name__,Variable screenlets.plugins.Amarok.AmarokAPI.__name__=screenlets.plugins.Amarok.AmarokAPI-class.html#__name__,Variable screenlets.plugins.Audacious.AudaciousAPI.__name__=screenlets.plugins.Audacious.AudaciousAPI-class.html#__name__,Variable screenlets.plugins.Banshee.BansheeAPI.__name__=screenlets.plugins.Banshee.BansheeAPI-class.html#__name__,Variable screenlets.plugins.BaseConverter.BaseConverter.__name__=screenlets.plugins.BaseConverter.BaseConverter-class.html#__name__,Variable screenlets.plugins.Convert.Converter.__name__=screenlets.plugins.Convert.Converter-class.html#__name__,Variable screenlets.plugins.Convert.RatioConverter.__name__=screenlets.plugins.Convert.RatioConverter-class.html#__name__,Variable screenlets.plugins.Exaile.ExaileAPI.__name__=screenlets.plugins.Exaile.ExaileAPI-class.html#__name__,Variable screenlets.plugins.GenericPlayer.GenericAPI.__name__=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__name__,Variable screenlets.plugins.Juk.JukAPI.__name__=screenlets.plugins.Juk.JukAPI-class.html#__name__,Variable screenlets.plugins.Kaffeine.KaffeineAPI.__name__=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__name__,Variable screenlets.plugins.LastFMProxy.LastFMProxyAPI.__name__=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__name__,Variable screenlets.plugins.LengthConverter.LengthConverter.__name__=screenlets.plugins.LengthConverter.LengthConverter-class.html#__name__,Variable screenlets.plugins.Listen.ListenAPI.__name__=screenlets.plugins.Listen.ListenAPI-class.html#__name__,Variable screenlets.plugins.Quodlibet.QuodlibetAPI.__name__=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__name__,Variable screenlets.plugins.Rhythmbox.RhythmboxAPI.__name__=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__name__,Variable screenlets.plugins.SizeConverter.SizeConverter.__name__=screenlets.plugins.SizeConverter.SizeConverter-class.html#__name__,Variable screenlets.plugins.Sonata.SonataAPI.__name__=screenlets.plugins.Sonata.SonataAPI-class.html#__name__,Variable screenlets.plugins.Songbird.SongbirdAPI.__name__=screenlets.plugins.Songbird.SongbirdAPI-class.html#__name__,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__name__"><a title="screenlets.Screenlet.__name__
 
80
<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
 
81
<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
 
82
<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
 
83
<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"> </tt>
 
84
<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Package screenlets=screenlets-module.html"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-0', 'screenlets', 'link-0');">screenlets</a></tt> </tt>
 
85
<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"> </tt>
 
86
<a name="logger_init"></a><div id="logger_init-def"><a name="L23"></a><tt class="py-lineno">23</tt> <a class="py-toggle" href="#" id="logger_init-toggle" onclick="return toggle('logger_init');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.logger-module.html#logger_init">logger_init</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
87
</div><div id="logger_init-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="logger_init-expanded"><a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line">        <tt class="py-docstring">"""Initialize logger"""</tt> </tt>
 
88
<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">        <tt id="link-1" class="py-name" targets="Package screenlets.options=screenlets.options-module.html"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-1', 'options', 'link-1');">options</a></tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-2', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Variable screenlets.COMMAND_LINE_OPTIONS=screenlets-module.html#COMMAND_LINE_OPTIONS"><a title="screenlets.COMMAND_LINE_OPTIONS" class="py-name" href="#" onclick="return doclink('link-3', 'COMMAND_LINE_OPTIONS', 'link-3');">COMMAND_LINE_OPTIONS</a></tt> </tt>
 
89
<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line">        <tt class="py-comment">#create main logger</tt> </tt>
 
90
<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">        <tt id="link-4" class="py-name" targets="Variable screenlets.logger.log=screenlets.logger-module.html#log"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-4', 'log', 'link-4');">log</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-5', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Variable screenlets.LOG_NAME=screenlets-module.html#LOG_NAME"><a title="screenlets.LOG_NAME" class="py-name" href="#" onclick="return doclink('link-6', 'LOG_NAME', 'link-6');">LOG_NAME</a></tt><tt class="py-op">)</tt> </tt>
 
91
<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-7" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-7', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Variable screenlets.LOG_DISABLED=screenlets-module.html#LOG_DISABLED"><a title="screenlets.LOG_DISABLED" class="py-name" href="#" onclick="return doclink('link-8', 'LOG_DISABLED', 'link-8');">LOG_DISABLED</a></tt><tt class="py-op">:</tt> </tt>
 
92
<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">                <tt class="py-comment">#set log output</tt> </tt>
 
93
<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-9" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-9', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable screenlets.LOG_OUTPUT=screenlets-module.html#LOG_OUTPUT"><a title="screenlets.LOG_OUTPUT" class="py-name" href="#" onclick="return doclink('link-10', 'LOG_OUTPUT', 'link-10');">LOG_OUTPUT</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"STDOUT"</tt><tt class="py-op">:</tt> </tt>
 
94
<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">)</tt> </tt>
 
95
<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-11" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-11', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="screenlets.LOG_OUTPUT" class="py-name" href="#" onclick="return doclink('link-12', 'LOG_OUTPUT', 'link-10');">LOG_OUTPUT</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"STDERR"</tt><tt class="py-op">:</tt> </tt>
 
96
<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
 
97
<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-13" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-13', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="screenlets.LOG_OUTPUT" class="py-name" href="#" onclick="return doclink('link-14', 'LOG_OUTPUT', 'link-10');">LOG_OUTPUT</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"FILE"</tt><tt class="py-op">:</tt> </tt>
 
98
<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
99
<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">                                <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">FileHandler</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-15', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Variable screenlets.LOG_FILE=screenlets-module.html#LOG_FILE"><a title="screenlets.LOG_FILE" class="py-name" href="#" onclick="return doclink('link-16', 'LOG_FILE', 'link-16');">LOG_FILE</a></tt><tt class="py-op">,</tt> <tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
 
100
<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
 
101
<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">                                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Cannot create %s logfile. Using STDERR instead."</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-17', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="screenlets.LOG_FILE" class="py-name" href="#" onclick="return doclink('link-18', 'LOG_FILE', 'link-16');">LOG_FILE</a></tt><tt class="py-op">)</tt> </tt>
 
102
<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">                                <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
 
103
<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
104
<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown output type: %s, using STDERR instead."</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-19', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="screenlets.LOG_FILE" class="py-name" href="#" onclick="return doclink('link-20', 'LOG_FILE', 'link-16');">LOG_FILE</a></tt><tt class="py-op">)</tt> </tt>
 
105
<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
 
106
<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">                <tt class="py-comment">#check if LOG_LEVEL is valid and set</tt> </tt>
 
107
<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
108
<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">                        <tt class="py-name">level</tt> <tt class="py-op">=</tt> <tt class="py-number">51</tt> <tt class="py-op">-</tt> <tt class="py-op">(</tt><tt class="py-number">10</tt> <tt class="py-op">*</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-21', 'options', 'link-1');">options</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Variable screenlets.LOG_LEVEL=screenlets-module.html#LOG_LEVEL"><a title="screenlets.LOG_LEVEL" class="py-name" href="#" onclick="return doclink('link-22', 'LOG_LEVEL', 'link-22');">LOG_LEVEL</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt>  <tt class="py-comment">#multiply by 10 and substract from 51 to fit into allowed range</tt> </tt>
 
109
<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">                        <tt id="link-23" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-23', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">)</tt> </tt>
 
110
<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">)</tt> </tt>
 
111
<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
 
112
<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"LOG_LEVEL %s is not allowed. Use -h to get more information. Using LOG_LEVEL=5"</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-24', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="screenlets.LOG_LEVEL" class="py-name" href="#" onclick="return doclink('link-25', 'LOG_LEVEL', 'link-22');">LOG_LEVEL</a></tt><tt class="py-op">)</tt> </tt>
 
113
<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">                        <tt id="link-26" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-26', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-comment">#command  line paramete was wrong, but user wanted logging ..."1" means log everything</tt> </tt>
 
114
<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">                        <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
 
115
<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
116
<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">                <tt class="py-comment">#do not log anything but we still have to provide logger to avoid errors</tt> </tt>
 
117
<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">                <tt class="py-name">log_file</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">StreamHandler</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt> </tt>
 
118
<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">                <tt class="py-comment">#screenlets.LOG_LEVEL = 51</tt> </tt>
 
119
<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">                <tt id="link-27" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-27', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">51</tt><tt class="py-op">)</tt> </tt>
 
120
<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">                <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setLevel</tt><tt class="py-op">(</tt><tt class="py-number">51</tt><tt class="py-op">)</tt> </tt>
 
121
<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">         </tt>
 
122
<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-comment">#set the format of log message</tt> </tt>
 
123
<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt class="py-name">log_formatter</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">Formatter</tt><tt class="py-op">(</tt><tt class="py-string">"%(asctime)s - %(levelname)s - %(message)s"</tt><tt class="py-op">)</tt> </tt>
 
124
<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-name">log_file</tt><tt class="py-op">.</tt><tt class="py-name">setFormatter</tt><tt class="py-op">(</tt><tt class="py-name">log_formatter</tt><tt class="py-op">)</tt> </tt>
 
125
<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">         </tt>
 
126
<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">        <tt class="py-comment">#add file to logger</tt> </tt>
 
127
<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt id="link-28" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-28', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">addHandler</tt><tt class="py-op">(</tt><tt class="py-name">log_file</tt><tt class="py-op">)</tt> </tt>
 
128
<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-29" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-29', 'log', 'link-4');">log</a></tt> </tt>
 
129
</div><a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line"> </tt>
 
130
<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line"><tt id="link-30" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-30', 'log', 'link-4');">log</a></tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Function screenlets.logger.logger_init()=screenlets.logger-module.html#logger_init"><a title="screenlets.logger.logger_init" class="py-name" href="#" onclick="return doclink('link-31', 'logger_init', 'link-31');">logger_init</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
131
<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line"> </tt>
 
132
<a name="get_default_logger"></a><div id="get_default_logger-def"><a name="L69"></a><tt class="py-lineno">69</tt> <a class="py-toggle" href="#" id="get_default_logger-toggle" onclick="return toggle('get_default_logger');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.logger-module.html#get_default_logger">get_default_logger</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
133
</div><div id="get_default_logger-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="get_default_logger-expanded"><a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">        <tt class="py-docstring">"""This function returns default logger"""</tt> </tt>
 
134
<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-keyword">global</tt> <tt id="link-32" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-32', 'log', 'link-4');">log</a></tt> </tt>
 
135
<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-comment"># Try to return the logger (an exception mean that the logger has not yet been initialized)</tt> </tt>
 
136
<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
137
<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt id="link-33" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-33', 'log', 'link-4');">log</a></tt> </tt>
 
138
<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
 
139
<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">                <tt id="link-34" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-34', 'log', 'link-4');">log</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="screenlets.logger.logger_init" class="py-name" href="#" onclick="return doclink('link-35', 'logger_init', 'link-31');">logger_init</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
140
<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-36" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-36', 'log', 'link-4');">log</a></tt><tt class="py-op">:</tt> </tt>
 
141
<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">                        <tt id="link-37" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-37', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method screenlets.services.ScreenletService.debug()=screenlets.services.ScreenletService-class.html#debug"><a title="screenlets.services.ScreenletService.debug" class="py-name" href="#" onclick="return doclink('link-38', 'debug', 'link-38');">debug</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s: Logger initialized"</tt> <tt class="py-op">%</tt><tt id="link-39" class="py-name" targets="Variable screenlets.Screenlet.__name__=screenlets.Screenlet-class.html#__name__,Variable screenlets.ScreenletTheme.__name__=screenlets.ScreenletTheme-class.html#__name__,Variable screenlets.plugins.Amarok.AmarokAPI.__name__=screenlets.plugins.Amarok.AmarokAPI-class.html#__name__,Variable screenlets.plugins.Audacious.AudaciousAPI.__name__=screenlets.plugins.Audacious.AudaciousAPI-class.html#__name__,Variable screenlets.plugins.Banshee.BansheeAPI.__name__=screenlets.plugins.Banshee.BansheeAPI-class.html#__name__,Variable screenlets.plugins.BaseConverter.BaseConverter.__name__=screenlets.plugins.BaseConverter.BaseConverter-class.html#__name__,Variable screenlets.plugins.Convert.Converter.__name__=screenlets.plugins.Convert.Converter-class.html#__name__,Variable screenlets.plugins.Convert.RatioConverter.__name__=screenlets.plugins.Convert.RatioConverter-class.html#__name__,Variable screenlets.plugins.Exaile.ExaileAPI.__name__=screenlets.plugins.Exaile.ExaileAPI-class.html#__name__,Variable screenlets.plugins.GenericPlayer.GenericAPI.__name__=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__name__,Variable screenlets.plugins.Juk.JukAPI.__name__=screenlets.plugins.Juk.JukAPI-class.html#__name__,Variable screenlets.plugins.Kaffeine.KaffeineAPI.__name__=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__name__,Variable screenlets.plugins.LastFMProxy.LastFMProxyAPI.__name__=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__name__,Variable screenlets.plugins.LengthConverter.LengthConverter.__name__=screenlets.plugins.LengthConverter.LengthConverter-class.html#__name__,Variable screenlets.plugins.Listen.ListenAPI.__name__=screenlets.plugins.Listen.ListenAPI-class.html#__name__,Variable screenlets.plugins.Quodlibet.QuodlibetAPI.__name__=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__name__,Variable screenlets.plugins.Rhythmbox.RhythmboxAPI.__name__=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__name__,Variable screenlets.plugins.SizeConverter.SizeConverter.__name__=screenlets.plugins.SizeConverter.SizeConverter-class.html#__name__,Variable screenlets.plugins.Sonata.SonataAPI.__name__=screenlets.plugins.Sonata.SonataAPI-class.html#__name__,Variable screenlets.plugins.Songbird.SongbirdAPI.__name__=screenlets.plugins.Songbird.SongbirdAPI-class.html#__name__,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__name__"><a title="screenlets.Screenlet.__name__
136
142
screenlets.ScreenletTheme.__name__
137
143
screenlets.plugins.Amarok.AmarokAPI.__name__
138
144
screenlets.plugins.Audacious.AudaciousAPI.__name__
153
159
screenlets.plugins.Sonata.SonataAPI.__name__
154
160
screenlets.plugins.Songbird.SongbirdAPI.__name__
155
161
screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__" class="py-name" href="#" onclick="return doclink('link-39', '__name__', 'link-39');">__name__</a></tt><tt class="py-op">)</tt> </tt>
156
 
<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt id="link-40" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-40', 'log', 'link-4');">log</a></tt> </tt>
157
 
<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
158
 
<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"%s: Cannot initialize logger!"</tt> <tt class="py-op">%</tt><tt id="link-41" class="py-name"><a title="screenlets.Screenlet.__name__
 
162
<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt id="link-40" class="py-name"><a title="screenlets.logger.log" class="py-name" href="#" onclick="return doclink('link-40', 'log', 'link-4');">log</a></tt> </tt>
 
163
<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
164
<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"%s: Cannot initialize logger!"</tt> <tt class="py-op">%</tt><tt id="link-41" class="py-name"><a title="screenlets.Screenlet.__name__
159
165
screenlets.ScreenletTheme.__name__
160
166
screenlets.plugins.Amarok.AmarokAPI.__name__
161
167
screenlets.plugins.Audacious.AudaciousAPI.__name__
176
182
screenlets.plugins.Sonata.SonataAPI.__name__
177
183
screenlets.plugins.Songbird.SongbirdAPI.__name__
178
184
screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__" class="py-name" href="#" onclick="return doclink('link-41', '__name__', 'link-39');">__name__</a></tt><tt class="py-op">)</tt> <tt class="py-comment">#TODO to quit or not to quit? Lack of logger may cause random errors</tt> </tt>
179
 
<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment">#TODO Raise Exception?</tt> </tt>
180
 
</div><a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 
185
<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment">#TODO Raise Exception?</tt> </tt>
 
186
</div><a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line"> </tt><script type="text/javascript">
181
187
<!--
182
188
expandto(location.href);
183
189
// -->
208
214
      <th class="navbar" align="right" width="100%">
209
215
        <table border="0" cellpadding="0" cellspacing="0">
210
216
          <tr><th class="navbar" align="center"
211
 
            >Screenlets 0.1.4</th>
 
217
            >Screenlets 0.1.6</th>
212
218
          </tr></table></th>
213
219
  </tr>
214
220
</table>
215
221
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
216
222
  <tr>
217
223
    <td align="left" class="footer">
218
 
    Generated by Epydoc 3.0.1 on Mon Jun  6 10:56:41 2011
 
224
    Generated by Epydoc 3.0.1 on Wed Jan  4 16:58:27 2012
219
225
    </td>
220
226
    <td align="right" class="footer">
221
227
      <a target="mainFrame" href="http://epydoc.sourceforge.net"