Jak określić w YAML, aby zawsze tworzyć plik dziennika w folderze projektu za pomocą dictConfig?

W moim programie Python mam następujący kod:

def main():
    # The file's path
    path = os.path.dirname(os.path.realpath(__file__))
    ...
    # Config file relative to this file
    loggingConf = open('{0}/configs/logging.yml'.format(path), 'r')
    logging.config.dictConfig(yaml.load(loggingConf))
    loggingConf.close()
    logger = logging.getLogger(LOGGER)
    ...

a to jest mój plik konfiguracyjny logging.yml:

version: 1
formatters:
  default:
    format: '%(asctime)s %(levelname)s %(name)s %(message)s'
handlers:
  console:
    class: logging.StreamHandler
    level: DEBUG
    formatter: default
    stream: ext://sys.stdout
  file:
    class : logging.FileHandler
    formatter: default
    filename: bot.log
loggers:
  cloaked_chatter:
    level: DEBUG
    handlers: [console, file]
    propagate: no

Problem polega na tym, że plik bot.log jest tworzony w miejscu uruchomienia programu. Chcę, aby zawsze był tworzony w folderze projektu, tj. W tym samym folderze, co mój program w Pythonie.

Na przykład uruchomienie programu za pomocą./bot.py utworzy plik dziennika w tym samym folderze. Ale uruchomienie gopython3 path/bot.py utworzy plik dziennika na poziomie powyżej programu Python w hierarchii plików.

Jak zapisać nazwę pliku w pliku konfiguracyjnym, aby rozwiązać ten problem? Czy muszę napisać niestandardowy program obsługi? Jeśli tak to jak? Czy to nie jest możliwe do rozwiązania za pomocą dictConfig?

questionAnswers(1)

yourAnswerToTheQuestion