Windows 10
Python 3.6

directory example

|-- main.py
|-- modules/
|   |-- __init__.py
|   `-- funcs.py
`-- log/
    `-- root.log

複数モジュールからロギングする(main.pyからもfuncs.pyからもログを出したい)場合,
https://docs.python.jp/3/howto/logging.html#logging-from-multiple-modules
の通りに行えば,問題なくログ出力ができます.

しかしローテートの方法をカスタマイズする場合,main.pyに
https://docs.python.jp/3/howto/logging-cookbook.html#using-a-rotator-and-namer-to-customize-log-rotation-processing
のように記述し,ロガーにハンドラを与えたところ,main.pyからのログに対してはローテートのカスタマイズが適用されました.
このときfuncs.pyからのログに対しても同様のカスタマイズを適用したい場合,funcs.pyにはどのように記述すべきでしょうか(同じログファイル/log/root.logに出力したい).
main.pyと全く同じように記述すると,PermissionError: [WinError 32]となります.

+α
できればlogging.config.fileConfig(...)で設定を読み込めると,もっとプログラムがスッキリすると思うのですが,ローテートのカスタマイズを適用したい場合はやりようがないですかね?


main.py

import logging
import modules.funcs

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
trh = logging.handlers.TimedRotatingFileHandler(...)
trh.rotator = rotator   # rotatorは別途作成
logger.addHandler(trh)

logger.debug('rotate test')

funcs.py

import logging

logger = logging.getLogger()
# ここで何らかの設定/記述をする?

logger.debug('rotate test @funcs.py')