Skip to content

Commit

Permalink
feat: add timestamp to log messages
Browse files Browse the repository at this point in the history
  • Loading branch information
Fredrik Makila committed Sep 13, 2020
1 parent 2a25e58 commit 1d0c62c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
9 changes: 5 additions & 4 deletions src/__tests__/logger.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import * as logger from '../logger';
describe('logger', () => {
beforeEach(() => {
process.env.SILENT = '';
jest.spyOn(Date, 'now').mockImplementation(() => 1600010987727);
});

afterEach(() => {
Expand All @@ -13,28 +14,28 @@ describe('logger', () => {
const spy = jest.spyOn(global.console, 'log').mockImplementation();

logger.info('Some message');
expect(spy).toHaveBeenCalledWith('⚡️[server INFO]: Some message');
expect(spy).toHaveBeenCalledWith('⚡️[INFO 2020-09-13 15:29:47]: Some message');
});

it('should print a warn message', () => {
const spy = jest.spyOn(global.console, 'warn').mockImplementation();

logger.warn('Some message');
expect(spy).toHaveBeenCalledWith('⚡️[server WARN]: Some message');
expect(spy).toHaveBeenCalledWith('⚡️[WARN 2020-09-13 15:29:47]: Some message');
});

it('should print an error message', () => {
const spy = jest.spyOn(global.console, 'error').mockImplementation();

logger.error('Some message');
expect(spy).toHaveBeenCalledWith('⚡️[server ERROR]: Some message');
expect(spy).toHaveBeenCalledWith('⚡️[ERROR 2020-09-13 15:29:47]: Some message');
});

it('should print a trace message', () => {
const spy = jest.spyOn(global.console, 'trace').mockImplementation();

logger.trace('Some message');
expect(spy).toHaveBeenCalledWith('⚡️[server ERROR]: Some message');
expect(spy).toHaveBeenCalledWith('⚡️[ERROR 2020-09-13 15:29:47]: Some message');
});

it.each([
Expand Down
6 changes: 5 additions & 1 deletion src/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@ abstract class Logger {
log(...data: unknown[]): void {
if (process.env.SILENT) return;

const message = `⚡️[server ${Level[this.level]}]: ${data}`;
const message = `⚡️[${Level[this.level]} ${this.timestamp()}]: ${data}`;
this.logMethod(message);
}

private timestamp(): string {
return new Date(Date.now()).toISOString().replace(/T/, ' ').replace(/\..+/, '');
}
}

class InfoLogger extends Logger {
Expand Down

0 comments on commit 1d0c62c

Please sign in to comment.