Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rfalke/apache-log2
Apache/CLF access logging for Nodejs
https://github.com/rfalke/apache-log2
Last synced: about 16 hours ago
JSON representation
Apache/CLF access logging for Nodejs
- Host: GitHub
- URL: https://github.com/rfalke/apache-log2
- Owner: rfalke
- License: gpl-3.0
- Created: 2015-06-03T20:44:14.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-06-08T12:09:29.000Z (over 9 years ago)
- Last Synced: 2024-10-01T19:10:24.410Z (about 2 months ago)
- Language: JavaScript
- Size: 172 KB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# apache-log2
## Apache/CLF access logging for Nodejs
[![NPM](https://nodei.co/npm/apache-log2.png?downloads=true)](https://nodei.co/npm/apache-log2/)**Author:** Raimar Falke
**Licence:** GNU GENERAL PUBLIC LICENSE Version 3
**Dependencies:** [sprintf](https://npmjs.org/package/sprintf/)**Based on:** [the work](https://bitbucket.org/surgemcgee/apache-log) of Robert Edward Steckroth II aka Surgemcgee / Bustout
**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**Changes compared to [apache-log](https://bitbucket.org/surgemcgee/apache-log):**
* Correct content length calculation when multiple write() calls occur
* Also support Buffers in addition of strings as arguments to write() and end()
* Replace apache_log.data.settings() call with apache_log.configure with different signature
* Allow to set the path before the first write operation. No more accesses to /var/log/access.log.**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-log2')
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:**
The default file is "/var/log/access.log" and the format is "combined". Call apache_log.configure() with the filename (including the directory) and the format ('common' or 'combined') to change these values.
````
var apache_log = require('apache-log2')apache_log.configure("/var/http/logs/access.log", "common");
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)
````