ソースを参照

Add proper logging and production environment

Matt Coles 9 年 前
コミット
aaf959a0fb
共有3 個のファイルを変更した36 個の追加3 個の削除を含む
  1. 2 0
      .gitignore
  2. 32 3
      index.js
  3. 2 0
      package.json

+ 2 - 0
.gitignore

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

+ 32 - 3
index.js

3
 var app = express();
3
 var app = express();
4
 var route_manager = require("./utils/route-manager.js");
4
 var route_manager = require("./utils/route-manager.js");
5
 var bodyParser = require('body-parser');
5
 var bodyParser = require('body-parser');
6
+var FileStreamRotator = require('file-stream-rotator');
7
+var morgan = require('morgan');
6
 var fs = require('fs');
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
 app.use(function(req, res, next) {
27
 app.use(function(req, res, next) {
11
   res.header("Access-Control-Allow-Origin", "*");
28
   res.header("Access-Control-Allow-Origin", "*");
19
 app.use('/source', require('magic-window')('/source', { ignore: ['config'] }))
36
 app.use('/source', require('magic-window')('/source', { ignore: ['config'] }))
20
 
37
 
21
 app.listen(3000, function () {
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
 process.on('SIGINT', function() {
54
 process.on('SIGINT', function() {
26
   console.log( "\nRecieved Ctrl-C, shutting down." );
55
   console.log( "\nRecieved Ctrl-C, shutting down." );
27
   process.exit(0);
56
   process.exit(0);

+ 2 - 0
package.json

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