def owned_file_handler(filename, owner=None, *args, **kwargs):
'''
We need this so we can set ownership of the log files.
See: https://docs.python.org/3.5/howto/logging-cookbook.html#customizing-handlers-with-dictconfig
'''
if owner:
if not os.path.exists(filename):
open(filename, 'a').close()
shutil.chown(filename, *owner)
return logging.handlers.TimedRotatingFileHandler(filename, *args, **kwargs)
在使用本文档中的简单文件处理程序时,有一些关于如何将所有权应用于日志文件的建议:
https://docs.python.org/3.5/howto/logging-cookbook.html#customizing-handlers-with-dictconfig
我按照这个模式对
TimedRotatingFileHandler
做了类似的事情,所以我想它对WatchedFileHandler
也能起作用,但我没有专门尝试过这种类型。在首先,我创建了一个与文档中的函数相似但不完全相同的函数:
我们的想法是完成我们需要做的工作,然后将所有其他参数传递给实际的处理程序。在
下面是我如何更改字典中的处理程序配置:
^{pr2}$我将
class
替换为回调()
到我自己的函数(它将直接调用类),并添加了新的owner
参数。它对我有用。在实际上,几乎从来没有理由以根用户身份运行服务。这几乎总是一个安全问题。除此之外,Python的os模块还提供了您需要的功能:
https://docs.python.org/2/library/os.html
相关问题 更多 >
编程相关推荐