0
0
Expressframework~8 mins

Log levels and when to use them in Express - Performance & Optimization

Choose your learning style9 modes available
Performance: Log levels and when to use them
MEDIUM IMPACT
Log levels affect server-side performance by controlling the amount of logging output, which impacts CPU usage, I/O operations, and response time.
Logging in an Express app with different log levels
Express
const logger = require('some-logger-lib');
app.use((req, res, next) => {
  logger.info(`Request: ${req.method} ${req.url}`);
  if (process.env.NODE_ENV === 'development') {
    logger.debug(`Headers: ${JSON.stringify(req.headers)}`);
  }
  next();
});
Logs only essential info in production and detailed debug info only in development, reducing unnecessary I/O and CPU load.
📈 Performance GainReduces log volume by 70-90%; lowers CPU and disk usage; improves response time by 10-30ms
Logging in an Express app with different log levels
Express
app.use((req, res, next) => {
  console.log('Request received:', req.method, req.url);
  console.log('Headers:', req.headers);
  console.log('Body:', req.body);
  next();
});
Logs everything at info level, including sensitive or verbose data, causing heavy I/O and CPU usage on every request.
📉 Performance CostBlocks event loop briefly on each request; triggers heavy disk writes; increases response time by 10-30ms per request
Performance Comparison
PatternCPU UsageDisk I/OResponse DelayVerdict
Logging all request details at info levelHigh CPU due to stringifying dataHigh disk writes per requestAdds 10-30ms delay[X] Bad
Logging only essential info at info level, debug in developmentModerate CPUReduced disk writesMinimal delay[OK] Good
Rendering Pipeline
Logging in Express runs on the server side and affects the Node.js event loop and I/O operations rather than browser rendering. Excessive logging can delay response generation and increase server CPU and disk usage.
Server CPU
Disk I/O
Event Loop
⚠️ BottleneckDisk I/O and event loop blocking due to synchronous or excessive logging
Optimization Tips
1Use 'error' and 'warn' levels for production critical issues only.
2Use 'info' for general important events, but avoid verbose data in production.
3Use 'debug' level only in development to avoid performance hits.
Performance Quiz - 3 Questions
Test your performance knowledge
Which log level should you use for detailed debugging information that is not needed in production?
Aerror
Binfo
Cdebug
Dwarn
DevTools: Node.js Profiler or Logging Middleware
How to check: Use Node.js built-in profiler or logging middleware to measure CPU and I/O during requests; check log file sizes and frequency
What to look for: High CPU spikes or large log files indicate excessive logging; balanced log volume shows good performance