apache-log

Apache/CLF access logging middleware for Nodejs. Adds NodeJs requests to your existing apache or CLF analytics.

Usage no npm install needed!

<script type="module">
  import apacheLog from 'https://cdn.skypack.dev/apache-log';
</script>

README

apache-log

Apache/CLF access logging for Nodejs

NPM

Author: Robert Edward Steckroth II

Digital Persona: Surgemcgee, Bustout RobertSteckroth@gmail.com

Licence: GNU GENERAL PUBLIC LICENSE Version 3

Description:

Outputs NodeJs request/response event logs with a Apache/CLF format. Supports common and combined log formats. Licensed under the GNU v3.

Features:

  • Automatic Content-length computations
  • Activated when a response.end is called
  • Does not require middleware, e.g. express or connect
  • Defaults to Apache2 log formatting defaults
  • Does not require a call to writeHead to output with CLF conformity

Caveats:

  • Will not compute time zone information. Many clf analyzers use geoip given this is a common problem.

example output line of combined log
127.0.0.1 - - [10/Aug/2013:22:18:19 +0000] "GET /?f=sabl1vpghojkc8dre7j1n&s=+yhoo+goog HTTP/1.1" 200 687 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36"

Usage:

    var apache_log = require('apache-log')
    http.createServer(function(req, res) {
      apache_log.logger(req, res)
      res.writeHead(200, {'Content-Type': 'text/html'} )
      res.end('This is when the logger will output to the specified log file.') 
    }).listen(8080)
    

Settings:

Set simple options according to the object-parse syntax

 apache_log.data.settings({
    directory: '/var/log/apache2/', // directory to the log file
    filename: 'access.log', // file name of the log file
    format: 'combined',    // "common" is a shorter format. Default is "combined". See apache clf docs for details
    }, apache_log.data.cli_parse()) // parse the cli input as well (see object-parse module for details)