Skip to content
This repository was archived by the owner on Aug 1, 2021. It is now read-only.

Commit e33d7c5

Browse files
committed
Add more examples of logger usage
1 parent e2a8a14 commit e33d7c5

File tree

9 files changed

+30
-26
lines changed

9 files changed

+30
-26
lines changed

src/api/middlewares/attachCurrentUser.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ const attachCurrentUser = async (req, res, next) => {
2222
req.currentUser = currentUser;
2323
return next();
2424
} catch (e) {
25-
Logger.warn('🔥 Error attaching user to req');
26-
Logger.warn(e);
25+
Logger.error('🔥 Error attaching user to req: %o', e);
2726
return next(e);
2827
}
2928
};

src/api/routes/auth.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ export default (app: Router) => {
2121
}),
2222
async (req: Request, res: Response, next: NextFunction) => {
2323
const logger = Container.get('logger');
24+
logger.debug('Calling Sign-Up endpoint with body: %o', req.body )
2425
try {
2526
const authServiceInstance = Container.get(AuthService);
2627
const { user, token } = await authServiceInstance.SignUp(req.body as IUserInputDTO);
2728
return res.json({ user, token }).status(201);
2829
} catch (e) {
29-
logger.warn('🔥 error ', e);
30+
logger.error('🔥 error: %o', e);
3031
return next(e);
3132
}
3233
},
@@ -41,14 +42,15 @@ export default (app: Router) => {
4142
}),
4243
}),
4344
async (req: Request, res: Response, next: NextFunction) => {
44-
const Logger = Container.get('logger');
45+
const logger = Container.get('logger');
46+
logger.debug('Calling Sign-In endpoint with body: %o', req.body)
4547
try {
4648
const { email, password } = req.body;
4749
const authServiceInstance = Container.get(AuthService);
4850
const { user, token } = await authServiceInstance.SignIn(email, password);
4951
return res.json({ user, token }).status(200);
5052
} catch (e) {
51-
Logger.warn('🔥 error ', e);
53+
logger.error('🔥 error: %o', e );
5254
return next(e);
5355
}
5456
},
@@ -64,12 +66,13 @@ export default (app: Router) => {
6466
* It's really annoying to develop that but if you had to, please use Redis as your data store
6567
*/
6668
route.post('/logout', middlewares.isAuth, (req: Request, res: Response, next: NextFunction) => {
67-
const Logger = Container.get('logger');
69+
const logger = Container.get('logger');
70+
logger.debug('Calling Sign-Out endpoint with body: %o', req.body)
6871
try {
6972
//@TODO AuthService.Logout(req.user) do some clever stuff
7073
return res.status(200).end();
7174
} catch (e) {
72-
Logger.warn('🔥 error ', e);
75+
logger.error('🔥 error %o', e);
7376
return next(e);
7477
}
7578
});

src/app.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ async function startServer() {
1919

2020
app.listen(config.port, err => {
2121
if (err) {
22-
Logger.warn(err);
22+
Logger.error(err);
2323
process.exit(1);
2424
return;
2525
}
26-
Logger.debug(`
26+
Logger.info(`
2727
################################################
2828
🛡️ Server listening on port: ${config.port} 🛡️
2929
################################################

src/config/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default {
3030
* Used by winston logger
3131
*/
3232
logs: {
33-
level: process.env.LOG_LEVEL || 'debug',
33+
level: process.env.LOG_LEVEL || 'silly',
3434
},
3535

3636
/**

src/jobs/emailSequence.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ export default class EmailSequenceJob {
1111
await mailerServiceInstance.StartEmailSequence('WelcomeSequence', { email, name });
1212
done();
1313
} catch (e) {
14-
Logger.warn('🔥 Error with Email Sequence Job');
15-
Logger.warn(e);
14+
Logger.error('🔥 Error with Email Sequence Job: %o', e);
1615
done(e);
1716
}
1817
}

src/loaders/dependencyInjector.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ export default ({ mongoConnection, models }: { mongoConnection; models: { name:
1313
Container.set('agendaInstance', agendaInstance);
1414
Container.set('logger', LoggerInstance)
1515

16-
LoggerInstance.debug('✌️ Agenda injected into container');
16+
LoggerInstance.info('✌️ Agenda injected into container');
1717

1818
return { agenda: agendaInstance };
1919
} catch (e) {
20-
LoggerInstance.debug('🔥 Error on dependency injector loader %o', e);
20+
LoggerInstance.error('🔥 Error on dependency injector loader: %o', e);
2121
throw e;
2222
}
2323
};

src/loaders/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import jobsLoader from './jobs';
55
import Logger from './logger';
66
export default async ({ expressApp }) => {
77
const mongoConnection = await mongooseLoader();
8-
Logger.debug('✌️ DB loaded and connected!');
8+
Logger.info('✌️ DB loaded and connected!');
99

1010
/**
1111
* WTF is going on here?
@@ -30,11 +30,11 @@ export default async ({ expressApp }) => {
3030
// whateverModel
3131
],
3232
});
33-
Logger.debug('✌️ Dependency Injector loaded');
33+
Logger.info('✌️ Dependency Injector loaded');
3434

3535
await jobsLoader({ agenda });
36-
Logger.debug('✌️ Jobs loaded');
36+
Logger.info('✌️ Jobs loaded');
3737

3838
await expressLoader({ app: expressApp });
39-
Logger.debug('✌️ Express loaded');
39+
Logger.info('✌️ Express loaded');
4040
};

src/services/auth.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,21 @@ export default class AuthService {
3434
* watches every API call and if it spots a 'password' and 'email' property then
3535
* it decides to steal them!? Would you even notice that? I wouldn't :/
3636
*/
37+
this.logger.silly('Hashing password');
3738
const hashedPassword = await argon2.hash(userInputDTO.password, { salt });
39+
this.logger.silly('Creating user db record');
3840
const userRecord = await this.userModel.create({
3941
...userInputDTO,
4042
salt: salt.toString('hex'),
4143
password: hashedPassword,
4244
});
43-
45+
this.logger.silly('Generating JWT');
4446
const token = this.generateToken(userRecord);
4547

4648
if (!userRecord) {
4749
throw new Error('User cannot be created');
4850
}
49-
51+
this.logger.silly('Sending welcome email');
5052
await this.mailer.SendWelcomeEmail(userRecord);
5153

5254
/**
@@ -60,7 +62,7 @@ export default class AuthService {
6062
Reflect.deleteProperty(user, 'salt');
6163
return { user, token };
6264
} catch (e) {
63-
this.logger.warn(e);
65+
this.logger.error(e);
6466
throw e;
6567
}
6668
}
@@ -73,8 +75,11 @@ export default class AuthService {
7375
/**
7476
* We use verify from argon2 to prevent 'timing based' attacks
7577
*/
78+
this.logger.silly('Checking password');
7679
const validPassword = await argon2.verify(userRecord.password, password);
7780
if (validPassword) {
81+
this.logger.silly('Password is valid!');
82+
this.logger.silly('Generating JWT');
7883
const token = this.generateToken(userRecord);
7984

8085
const user = userRecord.toObject();
@@ -103,7 +108,7 @@ export default class AuthService {
103108
* because it doesn't have _the secret_ to sign it
104109
* more information here: https://softwareontheroad.com/you-dont-need-passport
105110
*/
106-
111+
this.logger.silly(`Sign JWT for userId: ${user._id}`);
107112
return jwt.sign(
108113
{
109114
_id: user._id, // We are gonna use this in the middleware 'isAuth'

src/subscribers/user.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ export default class UserSubscriber {
2525

2626
UserModel.update({ _id }, { $set: { lastLogin: new Date() } });
2727
} catch (e) {
28-
Logger.warn(`🔥 Error on event ${events.user.signIn}`);
29-
Logger.warn(e);
28+
Logger.error(`🔥 Error on event ${events.user.signIn}: %o`, e);
3029

3130
// Throw the error so the process die (check src/app.ts)
3231
throw e;
@@ -46,8 +45,7 @@ export default class UserSubscriber {
4645
// Start your email sequence or whatever
4746
// MailService.startSequence('user.welcome', { email, name })
4847
} catch (e) {
49-
Logger.warn(`🔥 Error on event ${events.user.signUp}`);
50-
Logger.warn(e);
48+
Logger.error(`🔥 Error on event ${events.user.signUp}: %o`, e);
5149

5250
// Throw the error so the process dies (check src/app.ts)
5351
throw e;

0 commit comments

Comments
 (0)