Skip to content

Commit e5f6b9f

Browse files
authored
Merge pull request #27 from kitesjs/dev-logger-debug-tranport
add api createDebugLogger
2 parents 66c6ab1 + 2670ef1 commit e5f6b9f

File tree

6 files changed

+44
-14
lines changed

6 files changed

+44
-14
lines changed

packages/core/engine/kites-instance.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Logger, transports } from 'winston';
77

88
import { EventEmitter } from 'events';
99
import { DiscoverOptions, ExtensionsManager } from '../extensions/extensions-manager';
10-
import { createLogger } from '../logger';
10+
import { getLogger } from '../logger';
1111
import { EventCollectionEmitter } from './event-collection';
1212

1313
import { Type } from '@kites/common';
@@ -88,7 +88,7 @@ export class KitesInstance extends EventEmitter implements IKites {
8888
this.iocContainer = new Container();
8989

9090
// properties
91-
this.logger = createLogger(this.name, this.options.logger);
91+
this.logger = getLogger(this.name, this.options.logger);
9292
this.fnAfterConfigLoaded = () => this;
9393

9494
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { expect } from 'chai';
22
import { join } from 'path';
3-
import { createLogger } from '../logger';
3+
import { getDebugLogger } from '../logger';
44
import { discover } from './discover';
55

66
describe('Discover extensions', () => {
77
it('should load an extension', async () => {
88
const location = join(__dirname, '../test');
9-
const logger = createLogger('discover');
9+
const logger = getDebugLogger('kites:discover');
1010
let extensions: any = await discover({
1111
logger,
1212
rootDirectory: [location]
1313
});
14-
logger.info('Discovery location: ' + location);
14+
logger.info('Discovery location: ' + location);
1515
expect(extensions.length).eq(1);
1616
});
1717
});

packages/core/extensions/fs.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import * as fs from 'fs';
22
import * as path from 'path';
3+
import { getDebugLogger } from '../logger';
4+
5+
const logger = getDebugLogger('kites:discover:fs', { level: 'debug' });
36

47
/**
58
* Delete file and folder
@@ -85,10 +88,10 @@ export function walkSync(rootPath: string, fileName: string, exclude?: string |
8588
* @param exclude pattern to exclude searching
8689
*/
8790
export function walkSyncLevel(dirname: string[], filename: string, depth: number = 2, exclude?: string) {
88-
// console.log('Start searching: ', dirname);
91+
logger.info('Start searching: ' + dirname);
8992

9093
function readFiles(candidate: string, level: number): string[] {
91-
// console.log('Find in: ', candidate);
94+
logger.debug('Find in: ' + candidate);
9295

9396
let results: string[] = [];
9497
let list: string[];
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from 'chai';
22
import { join } from 'path';
33

4-
import { createLogger } from '../logger';
4+
import { getDebugLogger } from '../logger';
55
import * as cache from './location-cache';
66

77
describe('Location cache', () => {
@@ -12,11 +12,12 @@ describe('Location cache', () => {
1212

1313
it('should get one and save it!', async () => {
1414
const rootDirectory = join(__dirname, '../test');
15+
const logger = getDebugLogger('location-cache');
1516
let extensions: any = await cache.get({
16-
logger: createLogger('location-cache'),
17+
logger,
1718
rootDirectory: [rootDirectory]
1819
});
19-
console.log('Found: ', extensions, rootDirectory);
20+
logger.info('Found: ', extensions, rootDirectory);
2021
expect(extensions.length).eq(1);
2122
});
2223
});

packages/core/logger/debug-transport.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ export class DebugTransport extends Transport {
88

99
constructor(options?: Transport.TransportStreamOptions, name?: string) {
1010
super(options);
11-
this.debugger = debug('kites');
11+
this.debugger = debug(name || 'kites');
1212
this.name = name || 'debug';
1313
}
1414

1515
public log(info, callback: Function) {
16-
this.debugger(info);
16+
this.debugger(`${info.level} ${info.message}`);
1717
callback(null, true);
1818
}
1919
}

packages/core/logger/index.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ import * as path from 'path';
22
import { format, Logger, loggers } from 'winston';
33
import { DebugTransport } from './debug-transport';
44

5-
function createLogger(name: string, options?: any): Logger {
5+
/**
6+
* Get or create a logger with empty transport
7+
* @param name
8+
* @param options
9+
*/
10+
export function getLogger(name: string, options?: any): Logger {
11+
// TODO: Refactor options for logger (not for transport)
612
if (!loggers.has(name)) {
713
// add default Debug transport?
814
const defaultTransports = Object.keys(options || {}).length > 0 ? [] : [
@@ -49,7 +55,27 @@ function createLogger(name: string, options?: any): Logger {
4955
return loggers.get(name);
5056
}
5157

58+
/**
59+
* Get or create logger with default `debug` transport
60+
*/
61+
export function getDebugLogger(name: string, options?: any) {
62+
if (!loggers.has(name)) {
63+
loggers.add(name, {
64+
exitOnError: false,
65+
level: 'info',
66+
format: format.combine(
67+
format.splat(), // formats level.message based on Node's util.format().
68+
format.label({ label: name }),
69+
format.colorize(),
70+
format.timestamp(),
71+
format.printf(({ level, message, label, timestamp }) => `${timestamp} [${label}] ${level}: ${message}`)
72+
),
73+
transports: [new DebugTransport(options, name)],
74+
});
75+
}
76+
return loggers.get(name);
77+
}
78+
5279
export {
53-
createLogger,
5480
DebugTransport
5581
};

0 commit comments

Comments
 (0)