Skip to content

Commit ca4f539

Browse files
authored
Fixed bug in Logger, cleaned up types (#83)
Fixed logger Signed-off-by: nithinkdb <[email protected]> Signed-off-by: nithinkdb <[email protected]>
1 parent f609014 commit ca4f539

File tree

5 files changed

+17
-8
lines changed

5 files changed

+17
-8
lines changed

examples/logging.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const { DBSQLClient, DBSQLLogger, LogLevel } = require('../');
33

44
// This logger will emit logs to console and log.txt
55
//
6-
const logger = new DBSQLLogger('log.txt', LogLevel.info);
6+
const logger = new DBSQLLogger({ filepath: 'log.txt', level: LogLevel.info });
77

88
const client = new DBSQLClient({ logger: logger });
99

lib/DBSQLLogger.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import winston, { Logger } from 'winston';
2-
import IDBSQLLogger, { LogLevel } from './contracts/IDBSQLLogger';
2+
import IDBSQLLogger, { LoggerOptions, LogLevel } from './contracts/IDBSQLLogger';
33

44
export default class DBSQLLogger implements IDBSQLLogger {
55
logger: Logger;
66

7-
transports: any;
7+
transports: {
8+
console: winston.transports.ConsoleTransportInstance;
9+
file?: winston.transports.FileTransportInstance;
10+
};
811

9-
constructor(filepath?: string, level = LogLevel.info) {
12+
constructor({ level = LogLevel.info, filepath }: LoggerOptions = {}) {
1013
this.transports = {
1114
console: new winston.transports.Console({ handleExceptions: true, level }),
1215
};
@@ -24,8 +27,9 @@ export default class DBSQLLogger implements IDBSQLLogger {
2427
}
2528

2629
setLevel(level: LogLevel) {
27-
for (const key of Object.keys(this.transports)) {
28-
this.transports[key].level = level;
30+
this.transports.console.level = level;
31+
if (this.transports.file) {
32+
this.transports.file.level = level;
2933
}
3034
}
3135
}

lib/contracts/IDBSQLLogger.ts

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
export interface LoggerOptions {
2+
filepath?: string;
3+
level?: LogLevel;
4+
}
5+
16
export default interface IDBSQLLogger {
27
log(level: LogLevel, message: string): void;
38
}

tests/unit/DBSQLOperation.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const getResult = require('../../dist/DBSQLOperation/getResult').default;
99

1010
// Create logger that won't emit
1111
//
12-
const logger = new DBSQLLogger(LogLevel.error);
12+
const logger = new DBSQLLogger({ level: LogLevel.error });
1313

1414
class OperationHandleMock {
1515
constructor(hasResultSet = true) {

tests/unit/DBSQLSession.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const DBSQLOperation = require('../../dist/DBSQLOperation').default;
77

88
// Create logger that won't emit
99
//
10-
const logger = new DBSQLLogger(LogLevel.error);
10+
const logger = new DBSQLLogger({ level: LogLevel.error });
1111

1212
function createDriverMock(customMethodHandler) {
1313
customMethodHandler = customMethodHandler || ((methodName, value) => value);

0 commit comments

Comments
 (0)