Use Logger.error to log exceptions with a message and stack trace.
Import Logger from @nestjs/common to use NestJS built-in logging.
Examples
This logs a simple error with a message and the error stack.
NestJS
import { Logger } from'@nestjs/common';
try {
throw new Error('Oops!');
} catch (error) {
Logger.error('Caught an error', error.stack);
}
You can add a context string like 'MyApp' to identify where the error happened.
NestJS
import { Logger } from'@nestjs/common';
try {
// some risky code
} catch (error) {
Logger.error('Failed to process request', error.stack, 'MyApp');
}
Sample Program
This example shows how to catch an exception from a function and log it with a message, stack trace, and context.
NestJS
import { Logger } from'@nestjs/common';
function riskyOperation() {
throw new Error('Something bad happened');
}
try {
riskyOperation();
} catch (error) {
Logger.error('Exception caught in riskyOperation', error.stack, 'AppModule');
}
OutputSuccess
Important Notes
Always log the stack trace to understand where the error happened.
Use context strings to make logs easier to search and filter.
Consider using custom exception filters in NestJS for centralized logging.
Summary
Logging exceptions helps track and fix errors in your app.
Use Logger.error with message, stack, and optional context.
Catch errors and log them to keep a clear error history.
Practice
(1/5)
1. What is the main purpose of logging exceptions in a NestJS application?
easy
A. To increase the app's memory usage
B. To speed up the application runtime
C. To track and fix errors by recording error details
D. To prevent users from accessing the app
Solution
Step 1: Understand the role of exception logging
Logging exceptions records error details like messages and stack traces to help developers find and fix bugs.
Step 2: Identify the correct purpose
Among the options, only tracking and fixing errors matches the purpose of logging exceptions.
Final Answer:
To track and fix errors by recording error details -> Option C
Quick Check:
Logging exceptions = track and fix errors [OK]
Hint: Logging exceptions helps find bugs by saving error info [OK]
Common Mistakes:
Thinking logging improves app speed
Confusing logging with security features
Believing logging increases memory unnecessarily
2. Which of the following is the correct way to log an error with NestJS Logger inside a catch block?
easy
A. Logger.error(error.message, error.stack, 'MyContext')
B. Logger.log(error.message, 'MyContext')
C. Logger.warn(error.stack, 'MyContext')
D. Logger.debug(error.message, error.stack)
Solution
Step 1: Recall Logger.error method signature
Logger.error takes three arguments: message, stack trace, and optional context string.
Step 2: Match the correct syntax
Logger.error(error.message, error.stack, 'MyContext') correctly uses Logger.error with message, stack, and context. Others use wrong methods or missing parameters.
Final Answer:
Logger.error(error.message, error.stack, 'MyContext') -> Option A
A. Arguments to Logger.error are reversed; message should come first
B. Logger.error cannot be used inside catch blocks
C. Missing await keyword before Logger.error
D. Logger.error requires only one argument
Solution
Step 1: Check Logger.error argument order
Logger.error expects (message, stack, context). Here, stack and message are swapped.
Step 2: Confirm correct usage
Swapping arguments causes wrong log output or errors. Correct order is message first, then stack trace.
Final Answer:
Arguments to Logger.error are reversed; message should come first -> Option A
Quick Check:
Logger.error(message, stack, context) order matters [OK]
Hint: Logger.error needs message first, then stack, then context [OK]
Common Mistakes:
Swapping message and stack arguments
Thinking Logger.error is async needing await
Assuming Logger.error takes only one argument
5. You want to log exceptions in a NestJS global exception filter to capture all errors with context 'GlobalFilter'. Which code snippet correctly implements this?
hard
A. catch(exception: any) {
Logger.log(exception.message, 'GlobalFilter');
}
B. catch(exception: any) {
Logger.error(exception.message, exception.stack, 'GlobalFilter');
}
C. catch(exception: any) {
Logger.warn(exception.stack, 'GlobalFilter');
}
D. catch(exception: any) {
Logger.debug(exception.message, exception.stack);
}
Solution
Step 1: Understand global exception filter logging
Global filters catch all exceptions; logging must use Logger.error with message, stack, and context.
Step 2: Evaluate each option
catch(exception: any) {
Logger.error(exception.message, exception.stack, 'GlobalFilter');
} correctly calls Logger.error with message, stack, and 'GlobalFilter' context. Others use wrong log levels or miss stack/context.
Final Answer:
catch(exception: any) {
Logger.error(exception.message, exception.stack, 'GlobalFilter');
} -> Option B
Quick Check:
Global filter logs errors with Logger.error and context [OK]
Hint: Use Logger.error with message, stack, and context in global filters [OK]
Common Mistakes:
Using Logger.log or Logger.warn instead of Logger.error
Omitting stack trace or context
Using Logger.debug which is too low level
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.