Comments (5)
export const morganMiddleware = morgan(function (tokens, req, res) {
return [
'\n\n\n',
chalk.hex('#ff4757').bold('🍄 Morgan --> '),
chalk.hex('#34ace0').bold(tokens.method(req, res)),
chalk.hex('#ffb142').bold(tokens.status(req, res)),
chalk.hex('#ff5252').bold(tokens.url(req, res)),
chalk.hex('#2ed573').bold(tokens['response-time'](req, res) + ' ms'),
chalk.hex('#f78fb3').bold('@ ' + tokens.date(req, res)),
chalk.yellow(tokens['remote-addr'](req, res)),
chalk.hex('#fffa65').bold('from ' + tokens.referrer(req, res)),
chalk.hex('#1e90ff')(tokens['user-agent'](req, res)),
'\n\n\n',
].join(' ');
});
app.use(morganMiddleware);
from morgan.
Hi @lukasMega ! The format
argument to morgan
actually accepts a function
, so you don't have to mess with the tokens to get the desired fixed-width columns you are looking for :)
var chalk = require('chalk')
var morgan = require('morgan')
app.use(morgan(function (tokens, req, res) {
var status = tokens.status(req, res)
var statusColor = status >= 500
? 'red' : status >= 400
? 'yellow' : status >= 300
? 'cyan' : 'green'
return chalk.reset(padRight(tokens.method(req, res) + ' ' + tokens.url(req, res), 30))
+ ' ' + chalk[statusColor](status)
+ ' ' + chalk.reset(padLeft(tokens['response-time'](req, res) + ' ms', 8))
+ ' ' + chalk.reset('-')
+ ' ' + chalk.reset(tokens['content-length'](req, res) || '-')
}))
function padLeft(str, len) {
return len > str.length
? (new Array(len - str.length + 1)).join(' ') + str
: str
}
function padRight(str, len) {
return len > str.length
? str + (new Array(len - str.length + 1)).join(' ')
: str
}
from morgan.
Hi, thanks for your time and quick answer :)
But I am getting an error:
d:\Dev\node\WebServer\app.js:40
+ ' ' + chalk.reset(tokens['content-length'](req, res) || '-');
^
TypeError: undefined is not a function
I tried also:
tokens['content-length'](req, res)
tokens.res['content-length'](req, res)
res['content-length']
still it's undefined
//EDIT:
tokens.res(req, res, 'content-length')
works :-)
from morgan.
Hm... what version of this library are you using?
from morgan.
I'm using v1.5.1
from morgan.
Related Issues (20)
- Error: EBADF: bad file descriptor, write HOT 7
- Is there a way to get the start time instead of the finish time?
- Custom tokens returning function string HOT 1
- Is this compatible with angular 11? HOT 1
- Usage in ES6 promise based import does not work HOT 1
- skip function not working with 'immediate:true' configuration HOT 3
- Colored status token HOT 1
- Dexter Morgan HOT 2
- Use morgan as custom console logger HOT 3
- morgan block my auth login redirection when I use createWriteStream for stream option HOT 9
- Adding a token named token causes all subsequent tokens to break. HOT 3
- req.route.path value is undefined HOT 3
- :res[content-length] only shows size less than 1 KB HOT 2
- Support for promise HOT 2
- Getting vulnerable issue [email protected] HOT 1
- Expose `stream.write` as option HOT 2
- webscoket request should be logged HOT 2
- SPDY > Express.JS > Next.JS don't show path details.
- `User: ':remote-user'` does not show logged-in user but `-`
- Issue HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from morgan.