https://github.com/georgeosddev/connect-ltsv-logger
ltsv format logger for (connect|express)
https://github.com/georgeosddev/connect-ltsv-logger
Last synced: 7 days ago
JSON representation
ltsv format logger for (connect|express)
- Host: GitHub
- URL: https://github.com/georgeosddev/connect-ltsv-logger
- Owner: georgeOsdDev
- License: mit
- Created: 2013-02-13T12:30:27.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2020-03-18T10:20:38.000Z (about 5 years ago)
- Last Synced: 2025-04-11T16:19:16.286Z (about 1 month ago)
- Language: JavaScript
- Size: 9.77 KB
- Stars: 1
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Introduction
[LTSV](http://ltsv.org/) format logger for (connect|express).
This is just a wrapper of [connect.middleware.logger](http://www.senchalabs.org/connect/logger.html).
## Usage
```js
var express = require("express"),
ltsvlogger = require('connect-ltsv-logger');// define output WriteStream
var out = fs.createWriteStream("ltsv-access.log",{flags: 'a+'}),// define tokens
var ltsv = [];
ltsv.push("host");
ltsv.push("ident");
ltsv.push("user");
ltsv.push("time");
ltsv.push("req");
ltsv.push("status");
ltsv.push("size");
ltsv.push("referer");
ltsv.push("ua");var app = express();
app.configure(function(){
// app.set(/*snip*/)
// ...app.use(ltsvlogger({format:ltsv,stream:out}));
// app.use(/*snip*/)
// ...
});```
```bash
tail -f ltsv-access.log
host:127.0.0.1ident:-user:-time:[13/Feb/2013:19:15:44 +09:00]req:GET /stylesheets/style.css HTTP/1.1status:200size:110referer:http://localhost:3001/ua:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
```## Options
* format: Format string or Token array, see below for tokens
* stream :is the same as connect.logger.
* buffer: is the same as connect.logger.
* immediate: is the same as connect.logger.## Formats
Just override connect.logger's formats as ltsv* default
`host:127.0.0.1ident:-user:-time:[Wed, 13 Feb 2013 10:00:55 GMT]req:GET / HTTP/1.1status:200size:110referer:-ua:-`
* short
`host:127.0.0.1ident:-req:GET / HTTP/1.1status:200size:-response-time:1 ms`
* tiny
`req:GET /status:200size:-response-time:1 ms`
* dev
concise output colored by response status for development use (Not ltsv format).
## Tokens
The following tokens are available* time
```js
logger.token("time",function(){
return "[" + moment().format("DD/MMM/YYYY:HH:mm:ss Z") + "]" ;
});
```* host
```js
logger.token("host",function(req,res){
return req.connection.address().address || '-';
});
```* X-Forwarded-For
```js
logger.token("X-Forwarded-For",function(req,res){
return res.getHeader("X-Forwarded-For") || "-";
});
```* user
```js
logger.token("user",function(req,res){
return '-';
});
```* ident
```js
logger.token("ident",function(req,res){
return '-';
});
```* req
```js
logger.token("req",function(req,res){
var ret = [];
ret.push(req.method);
ret.push(req.url);
ret.push("HTTP/"+req.httpVersion);
return ret.join(" ");
});
```* method
```js
logger.token("method",function(req,res){
return req.method;
});
```* uri
```js
logger.token("uri",function(req,res){
return url.parse(req.url).href;
});
```* protocol
```js
logger.token("protocol",function(req,res){
return url.parse(req.url).protocol;
});
```* status
```js
logger.token("status",function(req,res){
return res.statusCode;
});
```* size
```js
logger.token("size",function(req,res){
return res.getHeader("content-length");
});
```* reqsize
```js
logger.token("reqsize",function(req,res){
if(req.body) return req.body.length;
return "-";
});
```* referer
```js
logger.token("referer",function(req,res){
return req.headers['referer'] || req.headers['referrer'];
});
```* ua
```js
logger.token("ua",function(req,res){
return req.headers['user-agent'];
});
```* vhost
```js
logger.token("vhost",function(req,res){
return req.headers["host"];
});
```* reqtime
```js
logger.token("reqtime",function(req,res){
return new Date - req._startTime;;
});
```* X-Cache
```js
logger.token("X-Cache",function(req,res){
return res.getHeader('X-Cache');
});
```* X-Runtime
```js
logger.token("X-Runtime",function(req,res){
return res.getHeader('X-Runtime');
});
```## Install
npm do```bash
npm install connect-ltsv-logger
```## License
Source code can be found on [github](https://github.com/georgeOsdDev/connect-ltsv-logger), licenced under [MIT](http://opensource.org/licenses/mit-license.php).
## Author
Developed by [Takeharu.Oshida](http://about.me/takeharu.oshida)
## Contributor
* [tshimogaisho](https://github.com/tshimogaisho)