prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Logger not work.
  **Describe the bug**
  Logger did not work at current master commit (https://github.com/huge-success/sanic/commit/7d79a86d4dc48de11cd34e8ba12e41f3a9f9ff18).
  
  
  **Code snippet**
  ```python
  from sanic import Sanic
  from sanic.log import logger
  from sanic.response import text
  
  
  app = Sanic()
  
  @app.listener('before_server_start')
  async def setup(app, loop):
      logger.info('INFO')
  
  
  @app.get('/')
  async def test(request):
      return text('hello world')
  
  
  if __name__ == '__main__':
      app.run()
  ```
  There is no any log/output now.
  
  
  
  **Expected behavior**
  At `0.8.3` release, it will logging/output some messages like:
  ```
  [2018-11-05 17:34:47 +0800] [12112] [INFO] Goin' Fast @ http://127.0.0.1:8000
  [2018-11-05 17:34:47 +0800] [12112] [INFO] INFO
  [2018-11-05 17:34:47 +0800] [12112] [INFO] Starting worker [12112]
  ```
  
  
  **Environment (please complete the following information):**
   - OS: Ubuntu 18.04
   - Version: https://github.com/huge-success/sanic/commit/7d79a86d4dc48de11cd34e8ba12e41f3a9f9ff18
  
  
  **Additional context**
  It seems that `getLogger()` does not get the correct logger at [line 56](https://github.com/huge-success/sanic/blob/master/sanic/log.py#L56) in `log.py`. The logger is trying to get a logger named `sanic.root`, but it does not exist. Rename the logger `root` at [line 9](https://github.com/huge-success/sanic/blob/master/sanic/log.py#L9) should fix this bug.
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `sanic/log.py`
  Content:
  ```
  1 import logging
  2 import sys
  3 
  4 
  5 LOGGING_CONFIG_DEFAULTS = dict(
  6     version=1,
  7     disable_existing_loggers=False,
  8     loggers={
  9         "root": {"level": "INFO", "handlers": ["console"]},
  10         "sanic.error": {
  11             "level": "INFO",
  12             "handlers": ["error_console"],
  13             "propagate": True,
  14             "qualname": "sanic.error",
  15         },
  16         "sanic.access": {
  17             "level": "INFO",
  18             "handlers": ["access_console"],
  19             "propagate": True,
  20             "qualname": "sanic.access",
  21         },
  22     },
  23     handlers={
  24         "console": {
  25             "class": "logging.StreamHandler",
  26             "formatter": "generic",
  27             "stream": sys.stdout,
  28         },
  29         "error_console": {
  30             "class": "logging.StreamHandler",
  31             "formatter": "generic",
  32             "stream": sys.stderr,
  33         },
  34         "access_console": {
  35             "class": "logging.StreamHandler",
  36             "formatter": "access",
  37             "stream": sys.stdout,
  38         },
  39     },
  40     formatters={
  41         "generic": {
  42             "format": "%(asctime)s [%(process)d] [%(levelname)s] %(message)s",
  43             "datefmt": "[%Y-%m-%d %H:%M:%S %z]",
  44             "class": "logging.Formatter",
  45         },
  46         "access": {
  47             "format": "%(asctime)s - (%(name)s)[%(levelname)s][%(host)s]: "
  48             + "%(request)s %(message)s %(status)d %(byte)d",
  49             "datefmt": "[%Y-%m-%d %H:%M:%S %z]",
  50             "class": "logging.Formatter",
  51         },
  52     },
  53 )
  54 
  55 
  56 logger = logging.getLogger("sanic.root")
  57 error_logger = logging.getLogger("sanic.error")
  58 access_logger = logging.getLogger("sanic.access")
  59
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/sanic/log.py b/sanic/log.py
  --- a/sanic/log.py
  +++ b/sanic/log.py
  @@ -6,7 +6,7 @@
       version=1,
       disable_existing_loggers=False,
       loggers={
  -        "root": {"level": "INFO", "handlers": ["console"]},
  +        "sanic.root": {"level": "INFO", "handlers": ["console"]},
           "sanic.error": {
               "level": "INFO",
               "handlers": ["error_console"],
  
verification_info: {"golden_diff": "diff --git a/sanic/log.py b/sanic/log.py\n--- a/sanic/log.py\n+++ b/sanic/log.py\n@@ -6,7 +6,7 @@\n     version=1,\n     disable_existing_loggers=False,\n     loggers={\n-        \"root\": {\"level\": \"INFO\", \"handlers\": [\"console\"]},\n+        \"sanic.root\": {\"level\": \"INFO\", \"handlers\": [\"console\"]},\n         \"sanic.error\": {\n             \"level\": \"INFO\",\n             \"handlers\": [\"error_console\"],\n", "issue": "Logger not work.\n**Describe the bug**\r\nLogger did not work at current master commit (https://github.com/huge-success/sanic/commit/7d79a86d4dc48de11cd34e8ba12e41f3a9f9ff18).\r\n\r\n\r\n**Code snippet**\r\n```python\r\nfrom sanic import Sanic\r\nfrom sanic.log import logger\r\nfrom sanic.response import text\r\n\r\n\r\napp = Sanic()\r\n\r\n@app.listener('before_server_start')\r\nasync def setup(app, loop):\r\n    logger.info('INFO')\r\n\r\n\r\n@app.get('/')\r\nasync def test(request):\r\n    return text('hello world')\r\n\r\n\r\nif __name__ == '__main__':\r\n    app.run()\r\n```\r\nThere is no any log/output now.\r\n\r\n\r\n\r\n**Expected behavior**\r\nAt `0.8.3` release, it will logging/output some messages like:\r\n```\r\n[2018-11-05 17:34:47 +0800] [12112] [INFO] Goin' Fast @ http://127.0.0.1:8000\r\n[2018-11-05 17:34:47 +0800] [12112] [INFO] INFO\r\n[2018-11-05 17:34:47 +0800] [12112] [INFO] Starting worker [12112]\r\n```\r\n\r\n\r\n**Environment (please complete the following information):**\r\n - OS: Ubuntu 18.04\r\n - Version: https://github.com/huge-success/sanic/commit/7d79a86d4dc48de11cd34e8ba12e41f3a9f9ff18\r\n\r\n\r\n**Additional context**\r\nIt seems that `getLogger()` does not get the correct logger at [line 56](https://github.com/huge-success/sanic/blob/master/sanic/log.py#L56) in `log.py`. The logger is trying to get a logger named `sanic.root`, but it does not exist. Rename the logger `root` at [line 9](https://github.com/huge-success/sanic/blob/master/sanic/log.py#L9) should fix this bug.\r\n\n", "before_files": [{"content": "import logging\nimport sys\n\n\nLOGGING_CONFIG_DEFAULTS = dict(\n    version=1,\n    disable_existing_loggers=False,\n    loggers={\n        \"root\": {\"level\": \"INFO\", \"handlers\": [\"console\"]},\n        \"sanic.error\": {\n            \"level\": \"INFO\",\n            \"handlers\": [\"error_console\"],\n            \"propagate\": True,\n            \"qualname\": \"sanic.error\",\n        },\n        \"sanic.access\": {\n            \"level\": \"INFO\",\n            \"handlers\": [\"access_console\"],\n            \"propagate\": True,\n            \"qualname\": \"sanic.access\",\n        },\n    },\n    handlers={\n        \"console\": {\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\": \"generic\",\n            \"stream\": sys.stdout,\n        },\n        \"error_console\": {\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\": \"generic\",\n            \"stream\": sys.stderr,\n        },\n        \"access_console\": {\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\": \"access\",\n            \"stream\": sys.stdout,\n        },\n    },\n    formatters={\n        \"generic\": {\n            \"format\": \"%(asctime)s [%(process)d] [%(levelname)s] %(message)s\",\n            \"datefmt\": \"[%Y-%m-%d %H:%M:%S %z]\",\n            \"class\": \"logging.Formatter\",\n        },\n        \"access\": {\n            \"format\": \"%(asctime)s - (%(name)s)[%(levelname)s][%(host)s]: \"\n            + \"%(request)s %(message)s %(status)d %(byte)d\",\n            \"datefmt\": \"[%Y-%m-%d %H:%M:%S %z]\",\n            \"class\": \"logging.Formatter\",\n        },\n    },\n)\n\n\nlogger = logging.getLogger(\"sanic.root\")\nerror_logger = logging.getLogger(\"sanic.error\")\naccess_logger = logging.getLogger(\"sanic.access\")\n", "path": "sanic/log.py"}], "after_files": [{"content": "import logging\nimport sys\n\n\nLOGGING_CONFIG_DEFAULTS = dict(\n    version=1,\n    disable_existing_loggers=False,\n    loggers={\n        \"sanic.root\": {\"level\": \"INFO\", \"handlers\": [\"console\"]},\n        \"sanic.error\": {\n            \"level\": \"INFO\",\n            \"handlers\": [\"error_console\"],\n            \"propagate\": True,\n            \"qualname\": \"sanic.error\",\n        },\n        \"sanic.access\": {\n            \"level\": \"INFO\",\n            \"handlers\": [\"access_console\"],\n            \"propagate\": True,\n            \"qualname\": \"sanic.access\",\n        },\n    },\n    handlers={\n        \"console\": {\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\": \"generic\",\n            \"stream\": sys.stdout,\n        },\n        \"error_console\": {\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\": \"generic\",\n            \"stream\": sys.stderr,\n        },\n        \"access_console\": {\n            \"class\": \"logging.StreamHandler\",\n            \"formatter\": \"access\",\n            \"stream\": sys.stdout,\n        },\n    },\n    formatters={\n        \"generic\": {\n            \"format\": \"%(asctime)s [%(process)d] [%(levelname)s] %(message)s\",\n            \"datefmt\": \"[%Y-%m-%d %H:%M:%S %z]\",\n            \"class\": \"logging.Formatter\",\n        },\n        \"access\": {\n            \"format\": \"%(asctime)s - (%(name)s)[%(levelname)s][%(host)s]: \"\n            + \"%(request)s %(message)s %(status)d %(byte)d\",\n            \"datefmt\": \"[%Y-%m-%d %H:%M:%S %z]\",\n            \"class\": \"logging.Formatter\",\n        },\n    },\n)\n\n\nlogger = logging.getLogger(\"sanic.root\")\nerror_logger = logging.getLogger(\"sanic.error\")\naccess_logger = logging.getLogger(\"sanic.access\")\n", "path": "sanic/log.py"}]}