代码之家  ›  专栏  ›  技术社区  ›  Parand

django:防止从shell记录权限错误

  •  4
  • Parand  · 技术社区  · 14 年前

    从django shell(manage.py shell)导入使用日志记录的python模块时,会遇到权限问题:日志文件归web app用户所有

    IOError: [Errno 13] Permission denied: '/path/to/my.log'
    

    有没有一种方法可以禁用/模拟/解决这个问题,这样我就可以从shell中使用模块?

    3 回复  |  直到 13 年前
        1
  •  1
  •   Ignacio Vazquez-Abrams    14 年前

    使用另一个设置文件加载所有正常设置,然后修改日志文件的位置。

        2
  •  1
  •   ncoghlan    13 年前

    我现在正在处理这个问题,我当前的计划是在settings.py中检查对日志目录的写访问权。

    如果没有,那么我将向stderr编写一个警告,跳过日志处理程序的配置,而不是失败。

        3
  •  0
  •   Alex    14 年前

    您可以使用Try-Except块:尝试写入日志文件,如果出现IOException,可以将日志写入其他位置(/tmp或当前目录),也可以禁用日志记录。

    参见: http://docs.python.org/tutorial/errors.html#handling-exceptions