diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 0992a9b..7375894 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,8 @@
+jsonlog 8.x-1.1, 2018-03-21
+---------------------------
+- #2954891 - properly handle empty http-request logs
+- replace deprecated getMock with createMock
+
 jsonlog 8.x-1.0, 2017-08-31
 ---------------------------
 - updated release_notes (no further changes)
diff --git a/jsonlog.services.yml b/jsonlog.services.yml
index da4bf7e..6610da1 100644
--- a/jsonlog.services.yml
+++ b/jsonlog.services.yml
@@ -1,6 +1,6 @@
 services:
   logger.jsonlog:
     class: Drupal\jsonlog\Logger\JsonLog
-    arguments: ['@config.factory', '@logger.log_message_parser', '@module_handler']
+    arguments: ['@config.factory', '@logger.log_message_parser', '@module_handler', '@request_stack']
     tags:
       - { name: logger }
diff --git a/release_notes/release_note_8.x-1.0.txt b/release_notes/release_note_8.x-1.0.txt
index 19f94af..b0fd3b4 100644
--- a/release_notes/release_note_8.x-1.0.txt
+++ b/release_notes/release_note_8.x-1.0.txt
@@ -22,8 +22,6 @@ Credits
 -------
 Thanks to Cegeka & jacobfriis for letting me support the jsonlog project.
 
-Version
--------
-jsonlog 8.x-1.x, 2017-05-03. (beta)
-jsonlog 8.x-1.0, 2017-08-31. (release, no changes)
-
+Version - also see CHANGELOG.txt
+--------------------------------
+jsonlog 8.x-1.1, 2018-03-21.
diff --git a/src/Logger/JsonLog.php b/src/Logger/JsonLog.php
index a6f61df..5fbd4c2 100644
--- a/src/Logger/JsonLog.php
+++ b/src/Logger/JsonLog.php
@@ -2,11 +2,11 @@
 
 namespace Drupal\jsonlog\Logger;
 
-use Drupal;
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Logger\LogMessageParserInterface;
 use Drupal\Core\Logger\RfcLoggerTrait;
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Symfony\Component\HttpFoundation\RequestStack;
 use Psr\Log\LoggerInterface;
 
 /**
@@ -36,6 +36,11 @@ class JsonLog implements LoggerInterface {
   private $moduleHandler;
 
   /**
+   * @var RequestStack
+   */
+  private $requestStack;
+
+  /**
    * @var string
    */
   private $threshold;
@@ -78,14 +83,16 @@ class JsonLog implements LoggerInterface {
   /**
    * JsonLog constructor.
    *
-   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
-   * @param \Drupal\Core\Logger\LogMessageParserInterface $parser
-   * @param \Drupal\Core\Extension\ModuleHandlerInterface $moduleHandler
+   * @param ConfigFactoryInterface $config_factory
+   * @param LogMessageParserInterface $parser
+   * @param ModuleHandlerInterface $moduleHandler
+   * @param RequestStack $requestStack
    */
-  public function __construct(ConfigFactoryInterface $config_factory, LogMessageParserInterface $parser, ModuleHandlerInterface $moduleHandler) {
+  public function __construct(ConfigFactoryInterface $config_factory, LogMessageParserInterface $parser, ModuleHandlerInterface $moduleHandler, RequestStack $requestStack) {
     $this->config = $config_factory->getEditable('jsonlog.settings');
     $this->parser = $parser;
     $this->moduleHandler = $moduleHandler;
+    $this->requestStack = $requestStack;
     $this->loadDefaultSettings();
   }
 
@@ -96,7 +103,7 @@ class JsonLog implements LoggerInterface {
    * to a custom log file as JSON.
    */
   public function log($level, $message, array $context = []) {
-    if(!$log_entry = $this->prepareLog($level, $message, $context)) {
+    if (!$log_entry = $this->prepareLog($level, $message, $context)) {
       return;
     }
 
@@ -127,13 +134,16 @@ class JsonLog implements LoggerInterface {
     // Populate the message placeholders and then replace them in the message.
     $variables = $this->parser->parseMessagePlaceholders($message, $context);
 
+    // Determine HTTP method in case we are dealing with a valid request context
+    $method = empty($context['request_uri']) ? '' : $this->requestStack->getCurrentRequest()->getRealMethod();
+
     // Create the entry.
     $entry = new JsonLogData($this->site_id, $this->canonical);
     $entry->setTags($this->tags_server, $this->tags_site);
     $entry->setMessage($message, $this->truncate, $variables);
     $entry->setSeverity($level);
     $entry->setSubType($context['channel']);
-    $entry->setMethod(Drupal::request()->getRealMethod());
+    $entry->setMethod($method);
     $entry->setRequest_uri($context['request_uri']);
     $entry->setReferer($context['referer']);
     $entry->setAccount(isset($context['user']) ? $context['user'] : NULL);
diff --git a/tests/src/Unit/JsonLogDataTest.php b/tests/src/Unit/JsonLogDataTest.php
index 8358b2a..84eb71b 100644
--- a/tests/src/Unit/JsonLogDataTest.php
+++ b/tests/src/Unit/JsonLogDataTest.php
@@ -144,7 +144,7 @@ class JsonLogDataTest extends UnitTestCase {
   }
 
   public function testCanSetUsernameAndUidBasedOnAccount() {
-    $accountMock = $this->getMock('Drupal\Core\Session\AccountProxyInterface');
+    $accountMock = $this->createMock('Drupal\Core\Session\AccountProxyInterface');
     $accountMock->expects($this->exactly(1))
       ->method('getAccountName')
       ->willReturn('dummy');
diff --git a/tests/src/Unit/JsonLogTest.php b/tests/src/Unit/JsonLogTest.php
index 6048631..f1969a7 100644
--- a/tests/src/Unit/JsonLogTest.php
+++ b/tests/src/Unit/JsonLogTest.php
@@ -8,6 +8,7 @@ use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\jsonlog\Logger\JsonLog;
 use Drupal\jsonlog\Logger\JsonLogData;
 use Drupal\Tests\UnitTestCase;
+use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -29,6 +30,11 @@ class JsonLogTest extends UnitTestCase {
   const DEFAULT_SITE_ID = 'jsonlog_test';
 
   /**
+   * @var mixed - mock of \Symfony\Component\HttpFoundation\RequestStack
+   */
+  private $requestStackMock;
+
+  /**
    * @var \Drupal\jsonlog\Logger\JsonLog
    */
   private $jsonLogger;
@@ -50,16 +56,18 @@ class JsonLogTest extends UnitTestCase {
     /** @var LogMessageParserInterface $messageParserMock */
     $messageParserMock = $this->getEmptyMessageParserMock();
     /** @var ModuleHandlerInterface $moduleHandlerMock */
-    $moduleHandlerMock = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
+    $moduleHandlerMock = $this->createMock('Drupal\Core\Extension\ModuleHandlerInterface');
+    /** @var RequestStack requestStackMock */
+    $this->requestStackMock = $this->createMock('Symfony\Component\HttpFoundation\RequestStack');
 
-    $this->jsonLogger = new JsonLog($configFactoryMock, $messageParserMock, $moduleHandlerMock);
+    $this->jsonLogger = new JsonLog($configFactoryMock, $messageParserMock, $moduleHandlerMock, $this->requestStackMock);
   }
 
   /**
    * test to see if a log file is well prepared
    */
   public function testCanPrepareLogFile() {
-    $request_mock = $this->getMock('Symfony\Component\HttpFoundation\Request');
+    $request_mock = $this->createMock('Symfony\Component\HttpFoundation\Request');
     $request_mock->expects($this->exactly(1))
       ->method('getRealMethod')
       ->willReturn('POST');
@@ -106,14 +114,14 @@ class JsonLogTest extends UnitTestCase {
 
     $this->assertEquals(
       self::DEFAULT_LOG_DIR . '/' . self::DEFAULT_SITE_ID . '.' . $time . '.json.log',
-        $filename,'Correct filename constructed.');
+      $filename,'Correct filename constructed.');
   }
 
   /**
    * @return \PHPUnit_Framework_MockObject_MockObject
    */
   private function getEmptyMessageParserMock() {
-    $messageParserMock = $this->getMock('Drupal\Core\Logger\LogMessageParserInterface');
+    $messageParserMock = $this->createMock('Drupal\Core\Logger\LogMessageParserInterface');
     $messageParserMock
       ->expects($this->atMost(1))
       ->method('parseMessagePlaceholders')
@@ -127,17 +135,17 @@ class JsonLogTest extends UnitTestCase {
    * @param \Symfony\Component\HttpFoundation\Request $request
    */
   private function setupContainerCurrentRequest(Request $request) {
-    $requestStackMock = $this->getMock('Symfony\Component\HttpFoundation\RequestStack');
-    $requestStackMock->expects($this->any())
+    $this->requestStackMock->expects($this->any())
       ->method('getCurrentRequest')
       ->willReturn($request);
 
-    $containerMock = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+    $containerMock = $this->createMock('Symfony\Component\DependencyInjection\ContainerInterface');
     $containerMock->expects($this->any())
       ->method('get')
       ->with('request_stack')
-      ->willReturn($requestStackMock);
+      ->willReturn($this->requestStackMock);
 
+    /** @var \Symfony\Component\DependencyInjection\ContainerInterface $containerMock */
     \Drupal::setContainer($containerMock);
   }
 
