2010-05-10 57 views
7

我有以下文件,配置日志记录:如何在Python日志记录配置文件中指定相对路径?

[loggers] 
keys=root 

[handlers] 
keys = root 

[formatters] 
keys = generic 

# Loggers 
[logger_root] 
level = DEBUG 
handlers = root 

# Handlers 
[handler_root] 
class = handlers.RotatingFileHandler 
args = ("test.log", "maxBytes=1*1024*1024", "backupCount=10") 
level = NOTSET 
formatter = generic 

# Formatters 
[formatter_generic] 
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s 
datefmt = %Y-%m-%d %H:%M:%S 

在发展这个伟大的工程,但是当我部署应用程序test.log中试图写在一个路径中,我没有必要的许可。

所以我的问题是,我该怎么做才能在这个配置文件中指定一个相对路径。

+2

当然test.log中是相对的已经在这里 - 如果你把一个相对更全面地会发生什么这里的路径 – Mark 2010-05-10 21:41:36

回答

5

马克是正确的,你在配置文件中的路径是相对于调用logging.config.fileConfig时调用的当前目录。这取决于您的部署方法的细节。

您可能需要指定一个绝对指向您的文件的路径,方法是在运行代码的进程可以写入的目录中加上'test.log'前缀。

另一个问题可能只是Django进程运行时用户的权限问题:通常在运行开发服务器时,它运行在您的帐户下,您通常不会遇到权限问题。在部署时(例如使用Apache和mod_wsgi),Apache进程和/或mod_wsgi守护进程在不同帐户下运行,这可能需要对相关文件夹授予权限。

如果您需要更多的帮助,请给有关部署的详细信息,与日志文件目录对于方法,位置等

+0

好吧,没问题我会添加test.log的绝对路径,并继续:)我只是认为有一个改变,指定一个相对路径的conf文件:) – 2010-05-12 13:50:18

相关问题