環境

  • Windows10
  • Python 3.6.6

やりたいこと

Pythonのlogging機能を使って、コンソールとログファイルにログを出力したいです。
otherという名前のlogger以外は、すべてINFOレベルで出力したいので、ルートロガーのレベルをINFOにしました。

$ ls
logger-main.py
fuga.py
logging.yaml

logger-main.py

import logging
import logging.config
import yaml
from fuga import Fuga


if __name__ == "__main__":
    logging.config.dictConfig(yaml.load(open("logging.yaml").read()))

    f = Fuga()

fuga.py

import logging
import yaml

logger = logging.getLogger(__name__)

class Fuga:
    def __init__(self):
        logger.debug("Fuga Constructor in debug")
        logger.info("Fuga Constructor in info")

logger.yaml

version: 1
formatters:
  customFormatter:
    format: '%(asctime)s : %(levelname)s : %(module)s : %(message)s'
handlers:
  fileRotatingHandler:
    class: logging.handlers.TimedRotatingFileHandler
    level: DEBUG
    filename: logfile/logger.log
    when: 'D'
    formatter: customFormatter
  consoleHandler:
    class: logging.StreamHandler
    level: DEBUG
    formatter: customFormatter
loggers:
  other:
    level: DEBUG
root:
  level: INFO
  handlers: [fileRotatingHandler, consoleHandler]

問題

$ python logger-main.pyを実行しましたが、標準出力とログファイルには何も出力されませんでした。
ルートロガーをINFOレベルに設定したので、fugaのinfoログは出力されると思っていました。

以下のように、logger.yamlのloggers部分にfugaを追加したら、

loggers:
  other:
    level: DEBUG
  hoge:
    level: DEBUG

次のように、標準出力とログファイルに出力されていました。

2019-03-16 16:22:13,791 : DEBUG : fuga : Fuga Constructor in debug
2019-03-16 16:22:13,791 : INFO : fuga : Fuga Constructor in info

質問

なぜ最初の状態では、fugaのinfoログが出力されなかったのでしょうか?
私は「ルートロガー」の使い方を勘違いしているのでしょうか?