using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
public class PasswordResetService
private readonly ILogger<PasswordResetService> _logger;
public PasswordResetService(ILogger<PasswordResetService> logger)
public void SendPasswordResetEmail(string userEmail)
throw new InvalidOperationException("Simulated exception", new Exception("Inner exception details"));
_logger.LogError(ex, $"Error sending password reset email to {userEmail}");
public static void Main()
var config = new LoggingConfiguration();
var logConsole = new ConsoleTarget("logConsole");
config.AddTarget(logConsole);
config.AddRule(NLog.LogLevel.Error, NLog.LogLevel.Fatal, logConsole);
LogManager.Configuration = config;
var loggerFactory = LoggerFactory.Create(builder =>
var logger = loggerFactory.CreateLogger<PasswordResetService>();
var service = new PasswordResetService(logger);
service.SendPasswordResetEmail("user@example.com");