LoggingService.java
package com.ctrlbuy.webshop.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.springframework.stereotype.Service;
@Service
public class LoggingService {
private static final Logger logger = LoggerFactory.getLogger(LoggingService.class);
public void logUserAction(String username, String action, String details) {
try {
MDC.put("username", username);
MDC.put("action", action);
logger.info("User action: {} - {}", action, details);
} finally {
MDC.clear();
}
}
public void logSystemEvent(String event, String details) {
logger.info("System event: {} - {}", event, details);
}
public void logError(String operation, Exception e) {
logger.error("Error in operation '{}': {}", operation, e.getMessage(), e);
}
public void logPerformance(String operation, long durationMs) {
if (durationMs > 1000) {
logger.warn("Slow operation detected: {} took {}ms", operation, durationMs);
} else {
logger.debug("Operation timing: {} took {}ms", operation, durationMs);
}
}
}