UNPKG

mermaid

Version:

Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.

172 lines (155 loc) 14.9 kB
<!DOCTYPE html> <html> <head> <title>logger.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="../doc-style.css" /> <script src="../doc-filelist.js"></script> <script> var relativeDir = "../", thisFile = "Users/knut/Documents/source/mermaid/src/logger.js", defaultSidebar = true; </script> <script src="../doc-script.js"></script> <script src="../mermaid.js"></script> <link rel="stylesheet" href="../mermaid.css" /> </head> <body> <div id="sidebar_wrapper"> <div id="sidebar_switch"> <span class="tree">Files</span> <span class="headings">Headings</span> </div> <div id="tree"></div> <div id="headings"> <div class="heading h1"> <a href="#logger.js">logger.js</a> </div> <div class="heading h1"> <a href="#logger">logger</a> </div> </div> </div> <div id="sidebar-toggle"></div> <div id="container"><div class="background highlight"></div> <table cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="docs"><div class="dox"> <div class="summary"><div class="pilwrap" id="logger"> <h1> <a href="#logger" name="logger" class="pilcrow">&#182;</a> logger</h1> </div> <p>logger = require(&#39;logger&#39;).create() logger.info(&quot;blah&quot;) =&gt; [2011-3-3T20:24:4.810 info (5021)] blah logger.debug(&quot;boom&quot;) =&gt; logger.level = Logger.levels.debug logger.debug(function() { return &quot;booom&quot; }) =&gt; [2011-3-3T20:24:4.810 error (5021)] booom</p> </div> <div class="body"> </div> </div> </td> <td class="code highlight"><div class="highlight"><pre><span class="kd">var</span> <span class="nx">Logger</span><span class="p">;</span> <span class="nx">Logger</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="kd">function</span> <span class="nx">Logger</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">level</span><span class="p">,</span> <span class="nx">num</span><span class="p">,</span> <span class="nx">ref</span><span class="p">;</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span> <span class="o">=</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{};</span> <span class="k">this</span><span class="p">.</span><span class="nx">level</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">level</span> <span class="o">||</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">levels</span><span class="p">.</span><span class="k">default</span><span class="p">;</span> <span class="nx">ref</span> <span class="o">=</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">levels</span><span class="p">;</span> <span class="k">for</span> <span class="p">(</span><span class="nx">level</span> <span class="k">in</span> <span class="nx">ref</span><span class="p">)</span> <span class="p">{</span> <span class="nx">num</span> <span class="o">=</span> <span class="nx">ref</span><span class="p">[</span><span class="nx">level</span><span class="p">];</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">define</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">level</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">level</span><span class="p">,</span> <span class="nx">message</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">level</span> <span class="o">&gt;</span> <span class="p">(</span><span class="nx">Logger</span><span class="p">.</span><span class="nx">levels</span><span class="p">[</span><span class="nx">level</span><span class="p">]</span> <span class="o">||</span> <span class="mi">5</span><span class="p">))</span> <span class="p">{</span> <span class="k">return</span><span class="p">;</span> <span class="p">}</span> <span class="k">if</span> <span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span> <span class="nx">message</span> <span class="o">=</span> <span class="nx">callback</span><span class="p">();</span> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">message</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span><span class="p">)</span> <span class="p">{</span> <span class="nx">message</span> <span class="o">=</span> <span class="nx">message</span><span class="p">();</span> <span class="p">}</span> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">write</span><span class="p">({</span> <span class="nx">timestamp</span><span class="o">:</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">,</span> <span class="nx">severity</span><span class="o">:</span> <span class="nx">level</span><span class="p">,</span> <span class="nx">message</span><span class="o">:</span> <span class="nx">message</span><span class="p">,</span> <span class="nx">pid</span><span class="o">:</span> <span class="nx">process</span><span class="p">.</span><span class="nx">pid</span> <span class="p">});</span> <span class="p">};</span> <span class="kd">function</span> <span class="nx">formatTime</span><span class="p">(</span><span class="nx">timestamp</span><span class="p">){</span> <span class="kd">var</span> <span class="nx">hh</span> <span class="o">=</span> <span class="nx">timestamp</span><span class="p">.</span><span class="nx">getUTCHours</span><span class="p">();</span> <span class="kd">var</span> <span class="nx">mm</span> <span class="o">=</span> <span class="nx">timestamp</span><span class="p">.</span><span class="nx">getUTCMinutes</span><span class="p">();</span> <span class="kd">var</span> <span class="nx">ss</span> <span class="o">=</span> <span class="nx">timestamp</span><span class="p">.</span><span class="nx">getSeconds</span><span class="p">();</span> <span class="kd">var</span> <span class="nx">ms</span> <span class="o">=</span> <span class="nx">timestamp</span><span class="p">.</span><span class="nx">getMilliseconds</span><span class="p">();</span> </pre></div> </td> </tr> <tr> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2" id="section-2">&#182;</a> </div> <p>If you were building a timestamp instead of a duration, you would uncomment the following line to get 12-hour (not 24) time if (hh &gt; 12) {hh = hh % 12;} These lines ensure you have two-digits</p> </td> <td class="code highlight"><div class="highlight"><pre> <span class="k">if</span> <span class="p">(</span><span class="nx">hh</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">)</span> <span class="p">{</span><span class="nx">hh</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="o">+</span><span class="nx">hh</span><span class="p">;}</span> <span class="k">if</span> <span class="p">(</span><span class="nx">mm</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">)</span> <span class="p">{</span><span class="nx">mm</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="o">+</span><span class="nx">mm</span><span class="p">;}</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ss</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">)</span> <span class="p">{</span><span class="nx">ss</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="o">+</span><span class="nx">ss</span><span class="p">;}</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ms</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="p">){</span><span class="nx">ms</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="o">+</span><span class="nx">ms</span><span class="p">;}</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ms</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">)</span> <span class="p">{</span><span class="nx">ms</span> <span class="o">=</span> <span class="s2">&quot;00&quot;</span><span class="o">+</span><span class="nx">ms</span><span class="p">;}</span> </pre></div> </td> </tr> <tr> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3" id="section-3">&#182;</a> </div> <p>This formats your string to HH:MM:SS</p> </td> <td class="code highlight"><div class="highlight"><pre> <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">hh</span><span class="o">+</span><span class="s2">&quot;:&quot;</span><span class="o">+</span><span class="nx">mm</span><span class="o">+</span><span class="s2">&quot;:&quot;</span><span class="o">+</span><span class="nx">ss</span> <span class="o">+</span><span class="s1">&#39; (&#39;</span><span class="o">+</span><span class="nx">ms</span><span class="o">+</span><span class="s1">&#39;)&#39;</span><span class="p">;</span> <span class="k">return</span> <span class="nx">t</span><span class="p">;</span> <span class="p">}</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">write</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">console</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">){</span> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">){</span> <span class="k">return</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">build_message</span><span class="p">(</span><span class="nx">options</span><span class="p">));</span> <span class="p">}</span> <span class="p">}</span> <span class="p">};</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">build_message</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="s2">&quot;[&quot;</span> <span class="o">+</span> <span class="nx">formatTime</span><span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">timestamp</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;] &quot;</span> <span class="o">+</span> <span class="nx">options</span><span class="p">.</span><span class="nx">message</span><span class="p">;</span> <span class="p">};</span> <span class="k">return</span> <span class="nx">Logger</span><span class="p">;</span> <span class="p">})();</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">define</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">logger</span><span class="p">,</span> <span class="nx">level</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">logger</span><span class="p">[</span><span class="nx">level</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">message</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">level</span><span class="p">,</span> <span class="nx">message</span><span class="p">,</span> <span class="nx">callback</span><span class="p">);</span> <span class="p">};</span> <span class="p">};</span> <span class="nx">Logger</span><span class="p">.</span><span class="nx">levels</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">debug</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">info</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">warn</span><span class="o">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nx">error</span><span class="o">:</span> <span class="mi">4</span><span class="p">,</span> <span class="nx">fatal</span><span class="o">:</span> <span class="mi">5</span><span class="p">,</span> <span class="k">default</span><span class="o">:</span><span class="mi">1</span> <span class="p">};</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">create</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="k">new</span> <span class="nx">Logger</span><span class="p">(</span><span class="nx">options</span><span class="p">);</span> <span class="p">};</span> </pre></div> </td> </tr> </tbody> </table> </div> </body> </html>