Skip to content

Commit 967a358

Browse files
committed
Emit Heroku-like logs from the Fastboot server
1 parent 2efe33d commit 967a358

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

fastboot.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ const FastBootAppServer = require('fastboot-app-server');
1010
// because fastboot-app-server uses cluster, but it might change in future
1111
const cluster = require('cluster');
1212

13+
const morgan = require('morgan')
14+
1315
class LoggerWithoutTimestamp {
1416
constructor() {
1517
this.prefix = cluster.isMaster ? 'master' : 'worker';
@@ -44,16 +46,23 @@ function writeAppInitializedWhenReady(logger) {
4446
}
4547

4648
var logger = new LoggerWithoutTimestamp();
47-
4849
logger.writeLine(`${os.cpus().length} cores available`);
4950

5051
let workerCount = process.env.WEB_CONCURRENCY || 1;
52+
let logRequests = morgan('at=info method=:method path=":url" ' +
53+
'request_id=:req[x-request-id] ' +
54+
'fwd=":req[x-real-ip]" ' +
55+
'user_agent=:req[user-agent]');
5156

5257
let server = new FastBootAppServer({
5358
distPath: 'dist',
5459
port: 9000,
5560
ui: logger,
5661
workerCount: workerCount,
62+
63+
// afterMiddleware won't be called since Fastboot's middleware
64+
// doesn't call next().
65+
beforeMiddleware: app => app.use(logRequests),
5766
});
5867

5968
if (!cluster.isWorker) {

package-lock.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
"trailingComma": "all"
101101
},
102102
"dependencies": {
103-
"fastboot-app-server": "^2.0.0"
103+
"fastboot-app-server": "^2.0.0",
104+
"morgan": "^1.9.1"
104105
}
105106
}

0 commit comments

Comments
 (0)