diff --git a/smtp.services.yml b/smtp.services.yml
new file mode 100644
index 0000000..f18787d
--- /dev/null
+++ b/smtp.services.yml
@@ -0,0 +1,5 @@
+services:
+  smtp.logger.channel:
+    class: Drupal\Core\Logger\LoggerChannel
+    factory: logger.factory:get
+    arguments: ['smtp']
\ No newline at end of file
diff --git a/src/Plugin/Mail/SMTPMailSystem.php b/src/Plugin/Mail/SMTPMailSystem.php
index 2a251d6..95e03d7 100644
--- a/src/Plugin/Mail/SMTPMailSystem.php
+++ b/src/Plugin/Mail/SMTPMailSystem.php
@@ -3,9 +3,12 @@
 namespace Drupal\smtp\Plugin\Mail;
 
 use Drupal\Component\Utility\Unicode;
-use Drupal\Core\Mail\MailInterface;
 use Drupal\Core\Mail\MailFormatHelper;
+use Drupal\Core\Mail\MailInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\smtp\PHPMailer\PHPMailer;
+use Psr\Log\LoggerInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Modify the drupal mail system to use smtp when sending emails.
@@ -17,15 +20,26 @@ use Drupal\smtp\PHPMailer\PHPMailer;
  *   description = @Translation("Sends the message, using SMTP.")
  * )
  */
-class SMTPMailSystem implements MailInterface {
+class SMTPMailSystem implements MailInterface, ContainerFactoryPluginInterface {
   protected $AllowHtml;
   protected $smtpConfig;
 
   /**
+   * Logger
+   * @var LoggerInterface
+   */
+  protected $logger;
+
+  /**
    * Constructs a SMPTMailSystem object.
+   * @param array $configuration
+   * @param $plugin_id
+   * @param $plugin_definition
+   * @param \Psr\Log\LoggerInterface $logger
    */
-  public function __construct() {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, LoggerInterface $logger) {
     $this->smtpConfig = \Drupal::config('smtp.settings');
+    $this->logger = $logger;
   }
 
   /**
@@ -172,7 +186,7 @@ class SMTPMailSystem implements MailInterface {
             default:
               // Everything else is unsuppored by PHPMailer.
               drupal_set_message(t('The %header of your message is not supported by PHPMailer and will be sent as text/plain instead.', array('%header' => "Content-Type: $value")), 'error');
-              watchdog('smtp', 'The %header of your message is not supported by PHPMailer and will be sent as text/plain instead.', array('%header' => "Content-Type: $value"), WATCHDOG_ERROR);
+              $this->logger->error(t('The %header of your message is not supported by PHPMailer and will be sent as text/plain instead.', array('%header' => "Content-Type: $value")));
 
               // Force the Content-Type to be text/plain.
               $mailer->IsHTML(FALSE);
@@ -451,7 +465,7 @@ class SMTPMailSystem implements MailInterface {
       'from' => $from,
     );
     if ($this->smtpConfig->get('smtp_queue')) {
-      watchdog('smtp', 'Queue sending mail to: @to', array('@to' => $to));
+      $this->logger->info(t('Queue sending mail to: @to', array('@to' => $to)));
       smtp_send_queue($mailerArr);
     }
     else {
@@ -601,4 +615,23 @@ class SMTPMailSystem implements MailInterface {
 
     return $components;
   }
+
+  /**
+   * Creates an instance of the plugin.
+   *
+   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
+   *   The container to pull out services used in the plugin.
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin ID for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   *
+   * @return static
+   *   Returns an instance of this plugin.
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static($configuration, $plugin_id, $plugin_definition, $container->get('smtp.logger.channel'));
+  }
 }
