Allow logger to add transports (#2363)
- Move all of the winston logic from FileLoggerAdapter to WinstonLoggerAdapter - Export WinstonLoggerAdapter so it can be sublcassed - Expost the ability to add adittional transports to logger - Import FirehoseLoggerAdapter alongside other adapters so it can be configured.
This commit is contained in:
committed by
Florent Vilmart
parent
36891f4ed7
commit
fa736f1df7
@@ -1,10 +1,10 @@
|
||||
'use strict';
|
||||
var LoggerController = require('../src/Controllers/LoggerController').LoggerController;
|
||||
var FileLoggerAdapter = require('../src/Adapters/Logger/FileLoggerAdapter').FileLoggerAdapter;
|
||||
var WinstonLoggerAdapter = require('../src/Adapters/Logger/WinstonLoggerAdapter').WinstonLoggerAdapter;
|
||||
|
||||
describe("Cloud Code Logger", () => {
|
||||
it("should expose log to functions", (done) => {
|
||||
var logController = new LoggerController(new FileLoggerAdapter());
|
||||
var logController = new LoggerController(new WinstonLoggerAdapter());
|
||||
|
||||
Parse.Cloud.define("loggerTest", (req, res) => {
|
||||
req.log.info('logTest', 'info log', {info: 'some log' });
|
||||
@@ -35,7 +35,7 @@ describe("Cloud Code Logger", () => {
|
||||
});
|
||||
|
||||
it("should expose log to trigger", (done) => {
|
||||
var logController = new LoggerController(new FileLoggerAdapter());
|
||||
var logController = new LoggerController(new WinstonLoggerAdapter());
|
||||
|
||||
Parse.Cloud.beforeSave("MyObject", (req, res) => {
|
||||
req.log.info('beforeSave MyObject', 'info log', {info: 'some log' });
|
||||
|
||||
18
spec/Logger.spec.js
Normal file
18
spec/Logger.spec.js
Normal file
@@ -0,0 +1,18 @@
|
||||
var logger = require('../src/logger');
|
||||
var winston = require('winston');
|
||||
|
||||
class TestTransport extends winston.Transport {
|
||||
log(level, msg, meta, callback) {
|
||||
callback(null, true);
|
||||
}
|
||||
}
|
||||
|
||||
describe('Logger', () => {
|
||||
it('should add transport', () => {
|
||||
const testTransport = new (TestTransport)({});
|
||||
spyOn(testTransport, 'log');
|
||||
logger.addTransport(testTransport);
|
||||
logger.logger.info('hi');
|
||||
expect(testTransport.log).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
@@ -1,12 +1,12 @@
|
||||
var LoggerController = require('../src/Controllers/LoggerController').LoggerController;
|
||||
var FileLoggerAdapter = require('../src/Adapters/Logger/FileLoggerAdapter').FileLoggerAdapter;
|
||||
var WinstonLoggerAdapter = require('../src/Adapters/Logger/WinstonLoggerAdapter').WinstonLoggerAdapter;
|
||||
|
||||
describe('LoggerController', () => {
|
||||
it('can check process a query without throwing', (done) => {
|
||||
// Make mock request
|
||||
var query = {};
|
||||
|
||||
var loggerController = new LoggerController(new FileLoggerAdapter());
|
||||
var loggerController = new LoggerController(new WinstonLoggerAdapter());
|
||||
|
||||
expect(() => {
|
||||
loggerController.getLogs(query).then(function(res) {
|
||||
@@ -69,7 +69,7 @@ describe('LoggerController', () => {
|
||||
level: 'error'
|
||||
};
|
||||
|
||||
var loggerController = new LoggerController(new FileLoggerAdapter());
|
||||
var loggerController = new LoggerController(new WinstonLoggerAdapter());
|
||||
|
||||
expect(() => {
|
||||
loggerController.getLogs(query).then(function(res) {
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
const request = require('request');
|
||||
var LogsRouter = require('../src/Routers/LogsRouter').LogsRouter;
|
||||
var LoggerController = require('../src/Controllers/LoggerController').LoggerController;
|
||||
var FileLoggerAdapter = require('../src/Adapters/Logger/FileLoggerAdapter').FileLoggerAdapter;
|
||||
var WinstonLoggerAdapter = require('../src/Adapters/Logger/WinstonLoggerAdapter').WinstonLoggerAdapter;
|
||||
|
||||
const loggerController = new LoggerController(new FileLoggerAdapter());
|
||||
const loggerController = new LoggerController(new WinstonLoggerAdapter());
|
||||
|
||||
describe('LogsRouter', () => {
|
||||
it('can check valid master key of request', (done) => {
|
||||
|
||||
@@ -1,35 +1,36 @@
|
||||
'use strict';
|
||||
|
||||
var FileLoggerAdapter = require('../src/Adapters/Logger/FileLoggerAdapter').FileLoggerAdapter;
|
||||
var WinstonLoggerAdapter = require('../src/Adapters/Logger/WinstonLoggerAdapter').WinstonLoggerAdapter;
|
||||
var Parse = require('parse/node').Parse;
|
||||
var request = require('request');
|
||||
|
||||
describe('info logs', () => {
|
||||
|
||||
it("Verify INFO logs", (done) => {
|
||||
var fileLoggerAdapter = new FileLoggerAdapter();
|
||||
fileLoggerAdapter.info('testing info logs', () => {
|
||||
fileLoggerAdapter.query({
|
||||
from: new Date(Date.now() - 500),
|
||||
size: 100,
|
||||
level: 'info'
|
||||
}, (results) => {
|
||||
if(results.length == 0) {
|
||||
fail('The adapter should return non-empty results');
|
||||
done();
|
||||
} else {
|
||||
expect(results[0].message).toEqual('testing info logs');
|
||||
done();
|
||||
}
|
||||
var winstonLoggerAdapter = new WinstonLoggerAdapter();
|
||||
winstonLoggerAdapter.info('testing info logs', () => {
|
||||
winstonLoggerAdapter.query({
|
||||
from: new Date(Date.now() - 500),
|
||||
size: 100,
|
||||
level: 'info'
|
||||
}, (results) => {
|
||||
if (results.length == 0) {
|
||||
fail('The adapter should return non-empty results');
|
||||
done();
|
||||
} else {
|
||||
expect(results[0].message).toEqual('testing info logs');
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('error logs', () => {
|
||||
it("Verify ERROR logs", (done) => {
|
||||
var fileLoggerAdapter = new FileLoggerAdapter();
|
||||
fileLoggerAdapter.error('testing error logs', () => {
|
||||
fileLoggerAdapter.query({
|
||||
var winstonLoggerAdapter = new WinstonLoggerAdapter();
|
||||
winstonLoggerAdapter.error('testing error logs', () => {
|
||||
winstonLoggerAdapter.query({
|
||||
from: new Date(Date.now() - 500),
|
||||
size: 100,
|
||||
level: 'error'
|
||||
@@ -52,8 +53,8 @@ describe('verbose logs', () => {
|
||||
reconfigureServer({ verbose: true })
|
||||
.then(() => createTestUser())
|
||||
.then(() => {
|
||||
let fileLoggerAdapter = new FileLoggerAdapter();
|
||||
return fileLoggerAdapter.query({
|
||||
let winstonLoggerAdapter = new WinstonLoggerAdapter();
|
||||
return winstonLoggerAdapter.query({
|
||||
from: new Date(Date.now() - 500),
|
||||
size: 100,
|
||||
level: 'verbose'
|
||||
@@ -71,8 +72,8 @@ describe('verbose logs', () => {
|
||||
headers: headers,
|
||||
url: 'http://localhost:8378/1/login?username=test&password=moon-y'
|
||||
}, (error, response, body) => {
|
||||
let fileLoggerAdapter = new FileLoggerAdapter();
|
||||
return fileLoggerAdapter.query({
|
||||
let winstonLoggerAdapter = new WinstonLoggerAdapter();
|
||||
return winstonLoggerAdapter.query({
|
||||
from: new Date(Date.now() - 500),
|
||||
size: 100,
|
||||
level: 'verbose'
|
||||
@@ -93,8 +94,8 @@ describe('verbose logs', () => {
|
||||
let obj = new Parse.Object('users');
|
||||
obj.set('password', 'pw');
|
||||
obj.save().then(() => {
|
||||
let fileLoggerAdapter = new FileLoggerAdapter();
|
||||
return fileLoggerAdapter.query({
|
||||
let winstonLoggerAdapter = new WinstonLoggerAdapter();
|
||||
return winstonLoggerAdapter.query({
|
||||
from: new Date(Date.now() - 500),
|
||||
size: 100,
|
||||
level: 'verbose'
|
||||
Reference in New Issue
Block a user