为什么文件处理程序总是在同一路径中创建日志文件?

Why always File Handler creating logging files in same path?

我正在尝试学习日志记录。当我创建我的第一个文件处理程序时,它工作正常。我创建了一个名为“Guesses_of_PC.log”的文件,处理程序已将其放入与 py 文件相同的路径。

但是在我想要另一个路径中的 py 项目之后,我在 py 文件旁边创建了一个新文件夹并将该 py 文件放入新文件夹以及“Guesses_of_PC.log”。但是现在,当我 运行 py 文件时,它仍然在第一个目录 中创建“Guesses_of_PC.log”,即使我写了新的处理程序路径。为什么会这样?

感谢您的支持。这里的代码:

log_guess.setLevel(logging.INFO)
log_hand_guess=logging.FileHandler(filename="Guesses_of_PC.log")
log_guess.addHandler(log_hand_guess)
log_form_guess=logging.Formatter("%(asctime)s:%(levelname)s:%(name)s:%(message)s")
log_hand_guess.setFormatter(log_form_guess) ```


  [1]: https://i.stack.imgur.com/BvUPm.png

Python 在执行代码之前根据 working directory, and your working directory is the first directory. So it create the log file using first_folder/Guesses_of_PC.log. To create the log file in the new folder, you need to use filename="new_folder/Guesses_of_PC.log", or change the working directory 解析相对路径。示例代码:

log_guess.setLevel(logging.INFO)
log_hand_guess=logging.FileHandler(filename="new_folder/Guesses_of_PC.log")
log_guess.addHandler(log_hand_guess)
log_form_guess=logging.Formatter("%(asctime)s:%(levelname)s:%(name)s:%(message)s")
log_hand_guess.setFormatter(log_form_guess)