2010-05-10 4 views
7

J'ai le fichier suivant à l'enregistrement de configuration:Comment puis-je spécifier un chemin relatif dans un fichier de configuration de journalisation 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 

Dans le développement Cela fonctionne très bien, mais quand je Déployez le test.log d'application tente d'écrire dans un chemin dans lequel je n'ai pas permission nécessaire. Donc, ma question est, comment puis-je faire pour spécifier un chemin relatif dans ce fichier de configuration.

+2

Sûrement test.log est relatif ici déjà - ce qui se passe si vous mettez un rapport plus complet chemin d'accès ici – Mark

Répondre

5

Mark a raison, votre chemin dans le fichier de configuration est relatif à n'importe quel répertoire en cours lorsque l'appel logging.config.fileConfig est effectué. Cela dépend des détails de votre méthode de déploiement.

Vous devrez peut-être spécifier un chemin absolu à votre fichier, en préfixant 'test.log' avec un répertoire que vous savez être inscriptible par le processus exécutant votre code. Un autre problème pourrait être un problème d'autorisations avec l'utilisateur sous lequel votre processus Django s'exécute: généralement, lorsque vous exécutez le serveur de développement, il fonctionne sous votre compte et vous ne rencontrerez généralement pas de problèmes de permissions. Lors du déploiement (avec Apache et mod_wsgi, par exemple), le processus Apache et/ou le processus du démon mod_wsgi s'exécutent sous différents comptes qui peuvent avoir besoin d'une autorisation pour le dossier concerné.

Si vous avez besoin d'aide, s'il vous plaît donner plus de détails sur le déploiement par rapport à la méthode, l'emplacement du répertoire du fichier journal, etc.

+0

Ok, pas de problème Je vais ajouter le chemin absolu à test.log et continuer :) Je pensais juste qu'il y avait un changement pour spécifier un chemin relatif au fichier conf :) –

Questions connexes