如何修改 python 脚本尝试写入日志的默认位置
How to modify the default location where the python script is trying to write the log
有一个 python 脚本,在执行某些评估时,我必须在后台 运行 执行该脚本。但是,脚本会尝试在整个过程中保存一些日志,并且由于我必须 运行 在我没有 sudo 权限的机器上,脚本不会被执行。
我认为导致问题的行是:
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(tempfile.gettempdir(), "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")
我想我需要更改默认位置:default=os.path.join(tempfile.gettempdir(), "log-name.log")
。如何使输出路径成为我的主目录中的文件夹。在那里我不会得到任何与特权升级相关的问题。
我想你可以这样做:
_OUTPATH = 'Users/username/logs'
...
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(_OUTPATH, "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")
从环境中提取您的主目录:
from os.path import expanduser
homedir = expanduser("~")
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(homedir, "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")
此外,您可以尝试在日志文件的名称中添加时间戳,以免意外覆盖现有日志。
有一个 python 脚本,在执行某些评估时,我必须在后台 运行 执行该脚本。但是,脚本会尝试在整个过程中保存一些日志,并且由于我必须 运行 在我没有 sudo 权限的机器上,脚本不会被执行。
我认为导致问题的行是:
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(tempfile.gettempdir(), "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")
我想我需要更改默认位置:default=os.path.join(tempfile.gettempdir(), "log-name.log")
。如何使输出路径成为我的主目录中的文件夹。在那里我不会得到任何与特权升级相关的问题。
我想你可以这样做:
_OUTPATH = 'Users/username/logs'
...
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(_OUTPATH, "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")
从环境中提取您的主目录:
from os.path import expanduser
homedir = expanduser("~")
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(homedir, "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")
此外,您可以尝试在日志文件的名称中添加时间戳,以免意外覆盖现有日志。