Skip to content

Commit a0e8bdb

Browse files
committed
feat: add logSettings to override log level and default log level to error
closes #360
1 parent 2fa39bb commit a0e8bdb

File tree

5 files changed

+59
-47
lines changed

5 files changed

+59
-47
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,18 @@ serverlessExpress({
136136
})
137137
```
138138

139+
### logSettings
140+
141+
Specify log settings that are passed to the default logger. Currently, you can only set the log `level`.
142+
143+
```js
144+
{
145+
logSettings: {
146+
level: 'debug' // default: 'error'
147+
}
148+
}
149+
```
150+
139151
### log
140152

141153
Provide a custom `log` object with `info`, `debug` and `error` methods. For example, you could override the default with a [Winston log](https://www.npmjs.com/package/winston) instance.

examples/basic-starter-api-gateway-v1/scripts/local.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@ const context = {
77
process.exit(0)
88
}
99
}
10-
const callback = (e, v) => {
10+
const server = lambdaFunction.handler(apiGatewayEvent, context).then((e, v) => {
1111
if (e) console.error(e)
1212
if (v) console.info(v)
1313
process.exit(0)
14-
}
15-
const server = lambdaFunction.handler(apiGatewayEvent, context, callback)
14+
})
1615

1716
process.stdin.resume()
1817

src/configure.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ const proxy = require('./proxy')
44

55
function configure ({
66
app: configureApp,
7-
log: configureLogger = logger,
8-
framework: configureFramework = getFramework({ app: configureApp, log: configureLogger }),
7+
logSettings,
8+
log: configureLog = logger(logSettings),
9+
framework: configureFramework = getFramework({ app: configureApp, log: configureLog }),
910
binaryMimeTypes: configureBinaryMimeTypes,
1011
binarySettings: configureBinarySettings,
1112
resolutionMode: configureResolutionMode = 'PROMISE',
@@ -23,7 +24,7 @@ function configure ({
2324
binaryMimeTypes = configureBinaryMimeTypes,
2425
binarySettings = configureBinarySettings,
2526
eventSource = configureEventFns,
26-
log = configureLogger,
27+
log = configureLog,
2728
respondWithErrors = configureRespondWithErrors
2829
} = {}) => proxy({
2930
app: configureProxyApp,
@@ -48,7 +49,7 @@ function configure ({
4849
return {
4950
proxy: configureProxy,
5051
handler: configureHandler,
51-
log: configureLogger
52+
log: configureLog
5253
}
5354
}
5455

src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ const { getCurrentInvoke } = require('./current-invoke')
33

44
module.exports = configure
55
module.exports.getCurrentInvoke = getCurrentInvoke
6+
module.exports.configure = configure

src/logger.js

Lines changed: 39 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,42 @@
1-
const {
2-
LOG_LEVEL = process.env.NODE_ENV === 'development' ? 'debug' : 'error'
3-
} = process.env
4-
const logger = {
5-
// TODO: allow users to set log level without having to provide the other log methods
6-
level: LOG_LEVEL,
7-
error (message, additional) {
8-
if (!logger.level.includes('debug', 'verbose', 'info', 'warn', 'error')) return
9-
console.error({
10-
message,
11-
...additional
12-
})
13-
},
14-
warn (message, additional) {
15-
if (!logger.level.includes('debug', 'verbose', 'info', 'warn')) return
16-
console.warn({
17-
message,
18-
...additional
19-
})
20-
},
21-
info (message, additional) {
22-
if (!logger.level.includes('debug', 'verbose', 'info')) return
23-
console.info({
24-
message,
25-
...additional
26-
})
27-
},
28-
verbose (message, additional) {
29-
if (!logger.level.includes('debug', 'verbose')) return
30-
console.debug({
31-
message,
32-
...additional
33-
})
34-
},
35-
debug (message, additional) {
36-
if (logger.level !== 'debug') return
37-
console.debug({
38-
message,
39-
...additional
40-
})
1+
function logger ({
2+
level = 'error'
3+
} = {}) {
4+
return {
5+
error (message, additional) {
6+
if (!level.includes('debug', 'verbose', 'info', 'warn', 'error')) return
7+
console.error({
8+
message,
9+
...additional
10+
})
11+
},
12+
warn (message, additional) {
13+
if (!level.includes('debug', 'verbose', 'info', 'warn')) return
14+
console.warn({
15+
message,
16+
...additional
17+
})
18+
},
19+
info (message, additional) {
20+
if (!level.includes('debug', 'verbose', 'info')) return
21+
console.info({
22+
message,
23+
...additional
24+
})
25+
},
26+
verbose (message, additional) {
27+
if (!level.includes('debug', 'verbose')) return
28+
console.debug({
29+
message,
30+
...additional
31+
})
32+
},
33+
debug (message, additional) {
34+
if (level !== 'debug') return
35+
console.debug({
36+
message,
37+
...additional
38+
})
39+
}
4140
}
4241
}
4342

0 commit comments

Comments
 (0)