log4js
Version:
Port of Log4js to work with node.
109 lines (82 loc) • 7.76 kB
HTML
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>log4js-node by nomiddlename</title>
<link rel="stylesheet" href="/assets/css/style.css?v=a7f232b4c6654881e6a8bd2ac48ee149603d74de">
<meta name="viewport" content="width=device-width">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<h1>log4js-node</h1>
<p>A port of log4js to node.js</p>
<p class="view"><a href="http://github.com/nomiddlename/log4js-node">View the Project on GitHub <small></small></a></p>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="api.html">API</a></li>
<li><a href="appenders.html">Appenders</a></li>
<li><a href="layouts.html">Layouts</a></li>
<li><a href="terms.html">Terminology</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="contrib-guidelines.html">Want to help?</a></li>
<li><a href="contributors.html">Contributors</a></li>
</ul>
</header>
<section>
<h1 id="file-appender">File Appender</h1>
<p>The file appender writes log events to a file. It supports an optional maximum file size, and will keep a configurable number of backups. When using the file appender, you should also call <code class="highlighter-rouge">log4js.shutdown</code> when your application terminates, to ensure that any remaining asynchronous writes have finished. Although the file appender uses the <a href="https://github.com/nomiddlename/streamroller">streamroller</a> library, this is included as a dependency of log4js so you do not need to include it yourself.</p>
<h2 id="configuration">Configuration</h2>
<ul>
<li><code class="highlighter-rouge">type</code> - <code class="highlighter-rouge">"file"</code></li>
<li><code class="highlighter-rouge">filename</code> - <code class="highlighter-rouge">string</code> - the path of the file where you want your logs written.</li>
<li><code class="highlighter-rouge">maxLogSize</code> - <code class="highlighter-rouge">integer</code> (optional) - the maximum size (in bytes) for the log file. If not specified, then no log rolling will happen.</li>
<li><code class="highlighter-rouge">backups</code> - <code class="highlighter-rouge">integer</code> (optional, default value = 5) - the number of old log files to keep during log rolling.</li>
<li><code class="highlighter-rouge">layout</code> - (optional, defaults to basic layout) - see <a href="/layouts.html">layouts</a></li>
</ul>
<p>Any other configuration parameters will be passed to the underlying <a href="https://github.com/nomiddlename/streamroller">streamroller</a> implementation (see also node.js core file streams):</p>
<ul>
<li><code class="highlighter-rouge">encoding</code> - <code class="highlighter-rouge">string</code> (default “utf-8”)</li>
<li><code class="highlighter-rouge">mode</code>- <code class="highlighter-rouge">integer</code> (default 0644)</li>
<li><code class="highlighter-rouge">flags</code> - <code class="highlighter-rouge">string</code> (default ‘a’)</li>
<li><code class="highlighter-rouge">compress</code> - <code class="highlighter-rouge">boolean</code> (default false) - compress the backup files during rolling (backup files will have <code class="highlighter-rouge">.gz</code> extension)</li>
</ul>
<h2 id="example">Example</h2>
<div class="language-javascript highlighter-rouge"><pre class="highlight"><code><span class="nx">log4js</span><span class="p">.</span><span class="nx">configure</span><span class="p">({</span>
<span class="na">appenders</span><span class="p">:</span> <span class="p">{</span>
<span class="na">everything</span><span class="p">:</span> <span class="p">{</span> <span class="na">type</span><span class="p">:</span> <span class="s1">'file'</span><span class="p">,</span> <span class="na">filename</span><span class="p">:</span> <span class="s1">'all-the-logs.log'</span> <span class="p">}</span>
<span class="p">},</span>
<span class="na">categories</span><span class="p">:</span> <span class="p">{</span>
<span class="na">default</span><span class="p">:</span> <span class="p">{</span> <span class="na">appenders</span><span class="p">:</span> <span class="p">[</span> <span class="s1">'everything'</span> <span class="p">],</span> <span class="na">level</span><span class="p">:</span> <span class="s1">'debug'</span> <span class="p">}</span>
<span class="p">}</span>
<span class="p">});</span>
<span class="kr">const</span> <span class="nx">logger</span> <span class="o">=</span> <span class="nx">log4js</span><span class="p">.</span><span class="nx">getLogger</span><span class="p">();</span>
<span class="nx">logger</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'I will be logged in all-the-logs.log'</span><span class="p">);</span>
</code></pre>
</div>
<p>This example will result in a single log file (<code class="highlighter-rouge">all-the-logs.log</code>) containing the log messages.</p>
<h2 id="example-with-log-rolling-and-compressed-backups">Example with log rolling (and compressed backups)</h2>
<div class="language-javascript highlighter-rouge"><pre class="highlight"><code><span class="nx">log4js</span><span class="p">.</span><span class="nx">configure</span><span class="p">({</span>
<span class="na">appenders</span><span class="p">:</span> <span class="p">{</span>
<span class="na">everything</span><span class="p">:</span> <span class="p">{</span> <span class="na">type</span><span class="p">:</span> <span class="s1">'file'</span><span class="p">,</span> <span class="na">filename</span><span class="p">:</span> <span class="s1">'all-the-logs.log'</span><span class="p">,</span> <span class="na">maxLogSize</span><span class="p">:</span> <span class="mi">10485760</span><span class="p">,</span> <span class="na">backups</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="na">compress</span><span class="p">:</span> <span class="kc">true</span> <span class="p">}</span>
<span class="p">},</span>
<span class="na">categories</span><span class="p">:</span> <span class="p">{</span>
<span class="na">default</span><span class="p">:</span> <span class="p">{</span> <span class="na">appenders</span><span class="p">:</span> <span class="p">[</span> <span class="s1">'everything'</span> <span class="p">],</span> <span class="na">level</span><span class="p">:</span> <span class="s1">'debug'</span><span class="p">}</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre>
</div>
<p>This will result in one current log file (<code class="highlighter-rouge">all-the-logs.log</code>). When that reaches 10Mb in size, it will be renamed and compressed to <code class="highlighter-rouge">all-the-logs.log.1.gz</code> and a new file opened called <code class="highlighter-rouge">all-the-logs.log</code>. When <code class="highlighter-rouge">all-the-logs.log</code> reaches 10Mb again, then <code class="highlighter-rouge">all-the-logs.log.1.gz</code> will be renamed to <code class="highlighter-rouge">all-the-logs.log.2.gz</code>, and so on.</p>
</section>
<footer>
<p>This project is maintained by <a href="http://github.com/nomiddlename">nomiddlename</a></p>
<p><small>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
</footer>
</div>
<script src="/assets/js/scale.fix.js"></script>
</body>
</html>