Python 模擬試験

Python実践 模擬試験 第4回 問28・10章 汎用OS・ランタイムサービス(logging)

ロガーの階層

次のコードを実行したときの出力として、正しいものを1つ選べ。

import logging
logging.getLogger("a")
print(logging.getLogger("a.b").parent.name, logging.getLogger("c.d").parent.name)
  1. A

    root root

  2. B

    a a

  3. C

    a.b c.d

  4. D

    a root

正解と解説を見る

正解:D

ロガーの名前は、ドット区切りで階層になる。子ロガーのメッセージは親に伝わる(伝播)ので、親のハンドラで一括して処理できる。

順実行する行実行後の変数
1`import logging`—
2`logging.getLogger("a")`—
3`print(logging.getLogger("a.b").parent.name, l…`—
結果実際の出力a root

学習のポイント:ライブラリでは、logging.getLogger(__name__) が定石。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。