winston-middleware 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.travis.yml +2 -2
- package/AUTHORS +4 -0
- package/LICENSE +1 -1
- package/Readme.md +29 -3
- package/index.js +23 -14
- package/package.json +18 -13
package/.travis.yml
CHANGED
package/AUTHORS
ADDED
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c) 2012
|
|
1
|
+
Copyright (c) 2012-2013 Heapsource.com - http://www.heapsource.com
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
of this software and associated documentation files (the "Software"), to deal
|
package/Readme.md
CHANGED
|
@@ -11,6 +11,28 @@
|
|
|
11
11
|
|
|
12
12
|
winston-middleware provides middlewares for request and error logging of your express.js application. It uses 'whitelists' to select properties from the request and (new in 0.2.x) response objects.
|
|
13
13
|
|
|
14
|
+
To make use of winston-middleware, you need to add the following to your application:
|
|
15
|
+
|
|
16
|
+
In `package.json`:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
{
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"...": "...",
|
|
22
|
+
"winston": "0.6.x",
|
|
23
|
+
"winston-middleware": "0.2.x",
|
|
24
|
+
"...": "..."
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
In `server.js` (or wherever you need it):
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
var winston = require('winston'),
|
|
33
|
+
expressWinston = require('winston-middleware');
|
|
34
|
+
```
|
|
35
|
+
|
|
14
36
|
### Error Logging
|
|
15
37
|
|
|
16
38
|
Use `expressWinston.errorLogger(options)` to create a middleware that log the errors of the pipeline.
|
|
@@ -48,7 +70,9 @@ Use `expressWinston.logger(options)` to create a middleware to log your HTTP req
|
|
|
48
70
|
json: true,
|
|
49
71
|
colorize: true
|
|
50
72
|
})
|
|
51
|
-
]
|
|
73
|
+
],
|
|
74
|
+
meta: true, // optional: control whether you want to log the meta data about the request (default to true)
|
|
75
|
+
msg: "HTTP {{req.method}} {{req.url}}" // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
|
|
52
76
|
}));
|
|
53
77
|
app.use(app.router); // notice how the router goes after the logger.
|
|
54
78
|
```
|
|
@@ -59,7 +83,7 @@ Use `expressWinston.logger(options)` to create a middleware to log your HTTP req
|
|
|
59
83
|
var express = require('express');
|
|
60
84
|
var expressWinston = require('winston-middleware');
|
|
61
85
|
var winston = require('winston'); // for transports.Console
|
|
62
|
-
var app = module.exports = express
|
|
86
|
+
var app = module.exports = express();
|
|
63
87
|
|
|
64
88
|
app.use(express.bodyParser());
|
|
65
89
|
app.use(express.methodOverride());
|
|
@@ -271,9 +295,11 @@ If you ran into any problems, please use the project [Issues section](https://gi
|
|
|
271
295
|
* [Lars Jacob](https://github.com/jaclar) (https://github.com/jaclar)
|
|
272
296
|
* [Jonathan Lomas](https://github.com/floatingLomas) (https://github.com/floatingLomas)
|
|
273
297
|
|
|
298
|
+
Also see AUTHORS file, add yourself if you are missing.
|
|
299
|
+
|
|
274
300
|
## MIT License
|
|
275
301
|
|
|
276
|
-
Copyright (c) 2012
|
|
302
|
+
Copyright (c) 2012-2014 Heapsource.com and Contributors - http://www.heapsource.com
|
|
277
303
|
|
|
278
304
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
279
305
|
of this software and associated documentation files (the "Software"), to deal
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c) 2012
|
|
1
|
+
// Copyright (c) 2012-2014 Heapsource.com and Contributors - http://www.heapsource.com
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
//
|
|
21
21
|
var winston = require('winston');
|
|
22
22
|
var util = require('util');
|
|
23
|
+
var _ = require('underscore');
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* A default list of properties in the request object that are allowed to be logged.
|
|
@@ -122,6 +123,7 @@ function logger(options) {
|
|
|
122
123
|
options.requestFilter = options.requestFilter || defaultRequestFilter;
|
|
123
124
|
options.responseFilter = options.responseFilter || defaultResponseFilter;
|
|
124
125
|
options.level = options.level || "info";
|
|
126
|
+
options.msg = options.msg || "HTTP {{req.method}} {{req.url}}";
|
|
125
127
|
|
|
126
128
|
return function (req, res, next) {
|
|
127
129
|
|
|
@@ -136,30 +138,37 @@ function logger(options) {
|
|
|
136
138
|
// Manage to get information from the response too, just like Connect.logger does:
|
|
137
139
|
var end = res.end;
|
|
138
140
|
res.end = function(chunk, encoding) {
|
|
139
|
-
|
|
141
|
+
res.responseTime = (new Date) - req._startTime;
|
|
140
142
|
|
|
141
143
|
res.end = end;
|
|
142
144
|
res.end(chunk, encoding);
|
|
143
145
|
|
|
144
|
-
|
|
146
|
+
if(options.meta !== false) {
|
|
147
|
+
var meta = {};
|
|
145
148
|
|
|
146
|
-
|
|
149
|
+
var bodyWhitelist;
|
|
147
150
|
|
|
148
|
-
|
|
149
|
-
|
|
151
|
+
requestWhitelist = requestWhitelist.concat(req._routeWhitelists.req || []);
|
|
152
|
+
responseWhitelist = responseWhitelist.concat(req._routeWhitelists.res || []);
|
|
150
153
|
|
|
151
|
-
|
|
152
|
-
|
|
154
|
+
meta.req = filterObject(req, requestWhitelist, options.requestFilter);
|
|
155
|
+
meta.res = filterObject(res, responseWhitelist, options.responseFilter);
|
|
153
156
|
|
|
154
|
-
|
|
157
|
+
bodyWhitelist = req._routeWhitelists.body || [];
|
|
155
158
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
+
if (bodyWhitelist) {
|
|
160
|
+
meta.req.body = filterObject(req.body, bodyWhitelist, options.requestFilter);
|
|
161
|
+
};
|
|
159
162
|
|
|
160
|
-
|
|
163
|
+
meta.responseTime = res.responseTime;
|
|
164
|
+
}
|
|
161
165
|
|
|
162
|
-
|
|
166
|
+
// Using mustache style templating
|
|
167
|
+
_.templateSettings = {
|
|
168
|
+
interpolate: /\{\{(.+?)\}\}/g
|
|
169
|
+
};
|
|
170
|
+
var template = _.template(options.msg);
|
|
171
|
+
var msg = template({req: req, res: res});
|
|
163
172
|
|
|
164
173
|
// This is fire and forget, we don't want logging to hold up the request so don't wait for the callback
|
|
165
174
|
for(var i = 0; i < options.transports.length; i++) {
|
package/package.json
CHANGED
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
{
|
|
2
|
-
"author": "
|
|
2
|
+
"author": "Heapsource.com <npm@heapsource.com> (http://www.heapsource.com)",
|
|
3
3
|
"name": "winston-middleware",
|
|
4
4
|
"description": "express.js middleware for flatiron/winston",
|
|
5
|
-
"keywords": [
|
|
6
|
-
|
|
5
|
+
"keywords": [
|
|
6
|
+
"winston",
|
|
7
|
+
"flatiron",
|
|
8
|
+
"logging",
|
|
9
|
+
"express",
|
|
10
|
+
"log",
|
|
11
|
+
"error",
|
|
12
|
+
"handler",
|
|
13
|
+
"middleware"
|
|
14
|
+
],
|
|
15
|
+
"version": "0.2.2",
|
|
7
16
|
"repository": {
|
|
8
|
-
"url": "https://github.com/
|
|
17
|
+
"url": "https://github.com/heapsource/winston-middleware.git"
|
|
9
18
|
},
|
|
10
19
|
"main": "index.js",
|
|
11
20
|
"scripts": {
|
|
12
|
-
"test": "
|
|
21
|
+
"test": "vows --spec"
|
|
13
22
|
},
|
|
14
23
|
"dependencies": {
|
|
15
|
-
"winston": "0.6.x"
|
|
24
|
+
"winston": "0.6.x",
|
|
25
|
+
"underscore": "~1.5.2"
|
|
16
26
|
},
|
|
17
27
|
"devDependencies": {
|
|
18
|
-
"vows": "0.
|
|
28
|
+
"vows": "0.7.x"
|
|
19
29
|
},
|
|
20
30
|
"engines": {
|
|
21
31
|
"node": "*"
|
|
22
32
|
},
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
"type" : "MIT",
|
|
26
|
-
"url" : "https://github.com/firebaseco/winston-middleware/blob/master/LICENSE"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
33
|
+
"license": "MIT"
|
|
29
34
|
}
|