2010-05-10 18 views
7

He el siguiente archivo para el registro de configuración:¿Cómo puedo especificar una ruta relativa en un archivo de configuración de registro de 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 

En Desarrollo esto funciona muy bien, pero cuando despliego la test.log aplicación está intentando ser escrito en un camino en el que no tengo la permiso necesario

Así que mi pregunta es, ¿cómo puedo hacer para especificar una ruta relativa en este archivo de configuración.

+2

Seguramente test.log es relativo ya aquí - ¿qué ocurre si se pone una más completa relativa aquí dentro – Mark

Respuesta

5

La marca está a la derecha, su ruta en el archivo de configuración es relativa al directorio actual cuando se realiza la llamada logging.config.fileConfig. Esto depende de los detalles de su método de implementación.

Es posible que deba especificar una ruta absoluta a su archivo, con el prefijo 'test.log' con un directorio que usted sabe que puede escribir en el proceso que ejecuta su código.

Otro problema podría ser simplemente un problema de permisos con el usuario en el que se ejecuta el proceso Django: normalmente cuando se ejecuta el servidor de desarrollo se ejecuta bajo su cuenta y normalmente no encontrará problemas de permisos. Al implementar (con Apache y mod_wsgi, por ejemplo), el proceso de Apache y/o el proceso de demonio mod_wsgi se ejecutan bajo diferentes cuentas que pueden necesitar permiso para la carpeta correspondiente.

Si necesita más ayuda, por favor, dar más detalles sobre su implementación con respecto al método, la ubicación del directorio de archivo de registro, etc.

+0

Ok, no hay problema, agregaré la ruta absoluta a test.log y sigo :) simplemente pensé que había un cambio para especificar una ruta relativa al archivo conf :) –

Cuestiones relacionadas