Skip to content

Commit b218c6f

Browse files
committed
Expose controller instead of adapter, reduces method requirements for adapter
1 parent 65cbaea commit b218c6f

File tree

7 files changed

+38
-48
lines changed

7 files changed

+38
-48
lines changed

spec/WinstonLoggerAdapter.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe('info logs', () => {
88

99
it("Verify INFO logs", (done) => {
1010
var winstonLoggerAdapter = new WinstonLoggerAdapter();
11-
winstonLoggerAdapter.info('testing info logs', () => {
11+
winstonLoggerAdapter.log('info', 'testing info logs', () => {
1212
winstonLoggerAdapter.query({
1313
from: new Date(Date.now() - 500),
1414
size: 100,
@@ -29,7 +29,7 @@ describe('info logs', () => {
2929
describe('error logs', () => {
3030
it("Verify ERROR logs", (done) => {
3131
var winstonLoggerAdapter = new WinstonLoggerAdapter();
32-
winstonLoggerAdapter.error('testing error logs', () => {
32+
winstonLoggerAdapter.log('error', 'testing error logs', () => {
3333
winstonLoggerAdapter.query({
3434
from: new Date(Date.now() - 500),
3535
size: 100,

src/Adapters/Logger/LoggerAdapter.js

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,12 @@
44
//
55
// Adapter classes must implement the following functions:
66
// * log() {}
7-
// * error() {}
8-
// * warn() {}
9-
// * info() {}
10-
// * verbose() {}
11-
// * debug() {}
12-
// * silly() {}
137
// * query(options, callback) /* optional */
14-
// * configureLogger(options)
158
// Default is WinstonLoggerAdapter.js
169

1710
export class LoggerAdapter {
1811
constructor(options) {}
19-
log() {}
20-
error() {}
21-
warn() {}
22-
info() {}
23-
verbose() {}
24-
debug() {}
25-
silly() {}
12+
log(level, message, /* meta */) {}
2613
}
2714

2815
export default LoggerAdapter;

src/Adapters/Logger/WinstonLoggerAdapter.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,9 @@ export class WinstonLoggerAdapter extends LoggerAdapter {
1515
configureLogger(options);
1616
}
1717
}
18-
19-
error() {
20-
return logger.error.apply(undefined, arguments);
21-
}
22-
23-
warn() {
24-
return logger.warn.apply(undefined, arguments);
25-
}
26-
27-
info() {
28-
return logger.info.apply(undefined, arguments);
29-
}
30-
31-
verbose() {
32-
return logger.verbose.apply(undefined, arguments);
33-
}
34-
35-
debug() {
36-
return logger.debug.apply(undefined, arguments);
37-
}
38-
39-
silly() {
40-
return logger.silly.apply(undefined, arguments);
41-
}
4218

4319
log() {
44-
return logger.log.apply(undefined, arguments);
20+
return logger.log.apply(logger, arguments);
4521
}
4622

4723
addTransport(transport) {

src/Controllers/LoggerController.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,35 @@ export const LogOrder = {
1616
}
1717

1818
export class LoggerController extends AdaptableController {
19+
20+
log(level, args) {
21+
args = [].concat(level, [...args]);
22+
this.adapter.log.apply(this.adapter, args);
23+
}
24+
25+
info() {
26+
return this.log('info', arguments);
27+
}
28+
29+
error() {
30+
return this.log('error', arguments);
31+
}
32+
33+
warn() {
34+
return this.log('warn', arguments);
35+
}
1936

37+
verbose() {
38+
return this.log('verbose', arguments);
39+
}
40+
41+
debug() {
42+
return this.log('debug', arguments);
43+
}
44+
45+
silly() {
46+
return this.log('silly', arguments);
47+
}
2048
// check that date input is valid
2149
static validDateTime(date) {
2250
if (!date) {

src/ParseServer.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,6 @@ class ParseServer {
181181
const pushControllerAdapter = loadAdapter(push && push.adapter, ParsePushAdapter, push || {});
182182

183183
const loggerControllerAdapter = loadAdapter(loggerAdapter, WinstonLoggerAdapter, { jsonLogs, logsFolder, verbose, logLevel, silent });
184-
185-
logging.setLogger(loggerControllerAdapter);
186-
187184
const emailControllerAdapter = loadAdapter(emailAdapter);
188185
const cacheControllerAdapter = loadAdapter(cacheAdapter, InMemoryCacheAdapter, {appId: appId});
189186
const analyticsControllerAdapter = loadAdapter(analyticsAdapter, AnalyticsAdapter);
@@ -200,6 +197,8 @@ class ParseServer {
200197
const hooksController = new HooksController(appId, databaseController, webhookKey);
201198
const analyticsController = new AnalyticsController(analyticsControllerAdapter);
202199

200+
logging.setLogger(loggerController);
201+
203202
// TODO: create indexes on first creation of a _User object. Otherwise it's impossible to
204203
// have a Parse app without it having a _User collection.
205204
let userClassPromise = databaseController.loadSchema()
@@ -208,14 +207,14 @@ class ParseServer {
208207
let usernameUniqueness = userClassPromise
209208
.then(() => databaseController.adapter.ensureUniqueness('_User', requiredUserFields, ['username']))
210209
.catch(error => {
211-
loggerControllerAdapter.warn('Unable to ensure uniqueness for usernames: ', error);
210+
loggerController.warn('Unable to ensure uniqueness for usernames: ', error);
212211
return Promise.reject(error);
213212
});
214213

215214
let emailUniqueness = userClassPromise
216215
.then(() => databaseController.adapter.ensureUniqueness('_User', requiredUserFields, ['email']))
217216
.catch(error => {
218-
loggerControllerAdapter.warn('Unable to ensure uniqueness for user email addresses: ', error);
217+
loggerController.warn('Unable to ensure uniqueness for user email addresses: ', error);
219218
return Promise.reject(error);
220219
})
221220

src/Routers/FunctionsRouter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export class FunctionsRouter extends PromiseRouter {
6565
master: req.auth && req.auth.isMaster,
6666
user: req.auth && req.auth.user,
6767
installationId: req.info.installationId,
68-
log: req.config.loggerController && req.config.loggerController.adapter,
68+
log: req.config.loggerController,
6969
headers: req.headers
7070
};
7171

src/triggers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export function getRequestObject(triggerType, auth, parseObject, originalParseOb
102102
triggerName: triggerType,
103103
object: parseObject,
104104
master: false,
105-
log: config.loggerController && config.loggerController.adapter
105+
log: config.loggerController
106106
};
107107

108108
if (originalParseObject) {

0 commit comments

Comments
 (0)