private void MonitorPrintQueue() { var errorLog = loggerFactory.Create <MessageConsumer>("ErrorLog"); var successLog = loggerFactory.Create <MessageConsumer>("SuccessLog"); IConnection connection = null; successLog.Debug("Listening for print messages"); connection = messageConsumer.GetConnection(messagingHost, messagingPort, hostUsername, hostPassword); foreach (var printMessage in messageConsumer.ListenForMessages(connection, hostExchange, hostQueue, routeKey)) { try { if (printMessage == null) { throw new InvalidOperationException("Message format was incorrect."); } pdfPrinter.PrintPDF(printMessage.FilePath, printMessage.OutputFile, printerName); successLog.Success(printMessage.ToString()); } catch (InvalidOperationException ex) { errorLog.Error($"Failure to print:{Environment.NewLine}{printMessage?.ToString()}", ex); } } }