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 ea884a1..4b2147b 100644
--- a/src/Plugin/Mail/SMTPMailSystem.php
+++ b/src/Plugin/Mail/SMTPMailSystem.php
@@ -8,9 +8,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.
@@ -22,16 +25,27 @@ 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;
+}
 
   /**
    * Concatenate and wrap the e-mail body for either
@@ -112,7 +126,7 @@ class SMTPMailSystem implements MailInterface {
         // If smtp_from config option is blank, use site_email.
         if (($from = $this->smtpConfig->get('site_mail')) == '') {
           drupal_set_message(t('There is no submitted from address.'), 'error');
-          watchdog('smtp', 'There is no submitted from address.', array(), WATCHDOG_ERROR);
+          $this->logger->error('There is no submitted from address.');
           return FALSE;
         }
       }
@@ -122,7 +136,7 @@ class SMTPMailSystem implements MailInterface {
 
     if (!\Drupal::service('email.validator')->isValid($from_comp['email'])) {
       drupal_set_message(t('The submitted from address (@from) is not valid.', array('@from' => $from)), 'error');
-      watchdog('smtp', 'The submitted from address (@from) is not valid.', array('@from' => $from), WATCHDOG_ERROR);
+      $this->logger->error(t('The submitted from address (@from) is not valid.'), array('@from' => $from));
       return FALSE;
     }
 
@@ -209,7 +223,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);
@@ -488,7 +502,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 {
@@ -638,4 +652,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'));
+  }
 }
