Skip to content

Commit

Permalink
Add possibility to set log level in instance
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Santillan committed Sep 17, 2021
1 parent 6d991c3 commit 6980f98
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 3 deletions.
3 changes: 3 additions & 0 deletions src/logger-options.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { LogLevelEnum } from "./log-level-enum";

export interface LoggerOptions {
includeBlackList?: string[];
excludeBlackList?: string[];
logLevel?: LogLevelEnum;
whiteList?: string[];
originIndex?: number;
}
4 changes: 1 addition & 3 deletions src/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ export class Logger {
public constructor(context?: object, options?: LoggerOptions) {
this.context = context;
this.level =
process.env.LOG_LEVEL !== undefined
? process.env.LOG_LEVEL
: LogLevelEnum.DEBUG;
options?.logLevel ?? process.env.LOG_LEVEL ?? LogLevelEnum.DEBUG;
this.filter = new LoggerFilter(
options?.includeBlackList,
options?.excludeBlackList,
Expand Down
49 changes: 49 additions & 0 deletions test/logger.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,55 @@ describe("simple-json-logger", () => {
// then
expect(instantiate).not.toThrow();
});

it("Should set level when provided in options", () => {
// given
const context = {};
const logLevel = faker.random.arrayElement([
LogLevelEnum.DEBUG,
LogLevelEnum.ERROR,
LogLevelEnum.INFO,
LogLevelEnum.WARN,
]);

// when
const logger = new Logger(context, { logLevel });

// then
expect(logger).toHaveProperty("level", logLevel);
});

it("Should set level when provided in environment", () => {
// given
const context = {};
const logLevel = faker.random.arrayElement([
LogLevelEnum.DEBUG,
LogLevelEnum.ERROR,
LogLevelEnum.INFO,
LogLevelEnum.WARN,
]);

process.env.LOG_LEVEL = logLevel;

// when
const logger = new Logger(context);

// then
expect(logger).toHaveProperty("level", logLevel);
});

it("Should set the level as debug when none is provided", () => {
// given
const context = {};
delete process.env.LOG_LEVEL;
const defaultLogLevel = LogLevelEnum.DEBUG;

// when
const logger = new Logger(context);

// then
expect(logger).toHaveProperty("level", defaultLogLevel);
});
});

describe("debug", () => {
Expand Down

0 comments on commit 6980f98

Please sign in to comment.