我有一个svn post commit钩子调用python脚本,这个python脚本需要使用python logging写入日志文件。但是,尝试打开日志文件会导致脚本失败。我确信这就是原因,因为如果我从FileHandler更改为StreamHandler,我的脚本就能完美运行。
这是我要写的日志文件:
-rw-rw-rw-. 1 apache apache 1.8K Jan 22 10:15 hook_log.out
这是它的父目录,它位于/ opt /:
的子目录中drwxrwxrwx. 2 apache apache 4.0K Jan 22 10:33 svn_hooks
现在,出于某种原因,如果我登录到root / tmp目录中的文件,我的脚本将完美运行:
drwxrwxrwt. 8 root root 4.0K Jan 22 10:34 tmp
我不明白为什么/ tmp目录应该被钩子写,而svn_hooks / direrectory不是。它属于apache,无论如何它都是可以写的。任何人都可以向我解释这个吗?谢谢!
编辑:脚本在此行上失败:
handler = logging.FileHandler("/opt/in1/svn_hooks/hook_log.out")