更改python中记录器生成的默认位置日志文件

Ama*_*wal 8 python logging filehandler

我在我的 python 源代码中使用记录器,并想在特定位置创建日志,但python 日志记录模块在默认位置创建日志文件,即从它执行的位置。

有没有办法改变这个默认位置?

下面是我的配置

  import logging
  logger = logging.getLogger(__name__)
  logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='testGene.log, filemode='w')
Run Code Online (Sandbox Code Playgroud)

Hay*_*yat 7

尝试这个:

import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='path/to/your/directory/testGene.log', filemode='w')
Run Code Online (Sandbox Code Playgroud)

或者

import logging
import os
if not os.path.exists("Logs"):
    os.makedirs("Logs")
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='Logs/testGene.log', filemode='w')
Run Code Online (Sandbox Code Playgroud)

  • 这是行不通的,当你运行 python 源代码时,它会尝试添加以下两个位置,最终会出现错误“没有这样的文件或目录” 1:日志文件的路径位置 2:执行脚本的位置 (2认同)

Rag*_*cha 1

初始化记录器时,指定要保存日志的位置。

logging.config.fileConfig('logging.config',
                      defaults={'yourlogfile': '/path/to/log/file'})
Run Code Online (Sandbox Code Playgroud)