Pārlūkot izejas kodu

Add proper logging and production environment

Matt Coles 9 gadi atpakaļ
vecāks
revīzija
aaf959a0fb
3 mainītis faili ar 36 papildinājumiem un 3 dzēšanām
  1. 2 0
      .gitignore
  2. 32 3
      index.js
  3. 2 0
      package.json

+ 2 - 0
.gitignore

@@ -1,4 +1,6 @@
1 1
 node_modules/
2
+log/
3
+ssl/
2 4
 tags
3 5
 redis/
4 6
 server.*

+ 32 - 3
index.js

@@ -3,9 +3,26 @@ var https = require('https');
3 3
 var app = express();
4 4
 var route_manager = require("./utils/route-manager.js");
5 5
 var bodyParser = require('body-parser');
6
+var FileStreamRotator = require('file-stream-rotator');
7
+var morgan = require('morgan');
6 8
 var fs = require('fs');
7
-var prkey = fs.readFileSync('server.key');
8
-var certi = fs.readFileSync('server.crt');
9
+var logDirectory = 'log'
10
+var production = process.argv[2];
11
+
12
+// ensure log directory exists
13
+fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory)
14
+
15
+// create a rotating write stream
16
+var accessLogStream = FileStreamRotator.getStream({
17
+  date_format: 'YYYYMMDD',
18
+  filename: logDirectory + '/access-%DATE%.log',
19
+  frequency: 'daily',
20
+  verbose: false
21
+})
22
+
23
+// setup the logger
24
+app.use(morgan('combined', {stream: accessLogStream}))
25
+app.use(morgan('combined'));
9 26
 
10 27
 app.use(function(req, res, next) {
11 28
   res.header("Access-Control-Allow-Origin", "*");
@@ -19,9 +36,21 @@ app.use('/', route_manager);
19 36
 app.use('/source', require('magic-window')('/source', { ignore: ['config'] }))
20 37
 
21 38
 app.listen(3000, function () {
22
-    console.log('Example app listening on port 3000!');
39
+  console.log('Now accepting connections on port 3000.');
23 40
 });
24 41
 
42
+if (production === "-p") {
43
+  var prkey = fs.readFileSync('key.pem');
44
+  var certi = fs.readFileSync('cert.pem');
45
+
46
+  https.createServer({
47
+    key: prkey,
48
+    cert: certi
49
+  }, app).listen(443, function() {
50
+    console.log("Now accepting HTTPS connections on port 443.");
51
+  });
52
+}
53
+
25 54
 process.on('SIGINT', function() {
26 55
   console.log( "\nRecieved Ctrl-C, shutting down." );
27 56
   process.exit(0);

+ 2 - 0
package.json

@@ -16,8 +16,10 @@
16 16
     "bcrypt-nodejs": "0.0.3",
17 17
     "body-parser": "^1.15.0",
18 18
     "express": "^4.13.4",
19
+    "file-stream-rotator": "0.0.6",
19 20
     "ioredis": "^1.15.1",
20 21
     "magic-window": "^1.0.4",
22
+    "morgan": "^1.7.0",
21 23
     "node-schedule": "^1.1.0"
22 24
   }
23 25
 }