diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000000..849ddff3b7e --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +dist/ diff --git a/fastboot.js b/fastboot.js index 5c50b9b7888..0bd560c8978 100644 --- a/fastboot.js +++ b/fastboot.js @@ -10,6 +10,8 @@ const FastBootAppServer = require('fastboot-app-server'); // because fastboot-app-server uses cluster, but it might change in future const cluster = require('cluster'); +const morgan = require('morgan'); + class LoggerWithoutTimestamp { constructor() { this.prefix = cluster.isMaster ? 'master' : 'worker'; @@ -44,16 +46,25 @@ function writeAppInitializedWhenReady(logger) { } var logger = new LoggerWithoutTimestamp(); - logger.writeLine(`${os.cpus().length} cores available`); let workerCount = process.env.WEB_CONCURRENCY || 1; +let logRequests = morgan( + 'at=info method=:method path=":url" ' + + 'request_id=:req[x-request-id] ' + + 'fwd=":req[x-real-ip]" ' + + 'user_agent=":req[user-agent]"', +); let server = new FastBootAppServer({ distPath: 'dist', port: 9000, ui: logger, workerCount: workerCount, + + // afterMiddleware won't be called since Fastboot's middleware + // doesn't call next(). + beforeMiddleware: app => app.use(logRequests), }); if (!cluster.isWorker) { diff --git a/package-lock.json b/package-lock.json index 3811782c8f5..3d17160b62a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16928,7 +16928,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "dev": true, "requires": { "basic-auth": "~2.0.0", "debug": "2.6.9", diff --git a/package.json b/package.json index 698347610a7..8da06a5cb5b 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "lint:hbs": "ember-template-lint app/templates", "lint:js": "eslint . --cache", "lint:deps": "ember dependency-lint", - "prettier": "prettier --write '{app,tests,mirage}/**/*.js'", + "prettier": "prettier --write '**/*.js'", "start": "./script/ember.sh serve", "start:live": "./script/ember.sh serve --proxy https://crates.io", "start:local": "./script/ember.sh serve --proxy http://127.0.0.1:8888", @@ -100,6 +100,7 @@ "trailingComma": "all" }, "dependencies": { - "fastboot-app-server": "^2.0.0" + "fastboot-app-server": "^2.0.0", + "morgan": "^1.9.1" } }