[Résolu] Le fichier de logs n'est pas créé
#1
Thumbs Up 
Bonjour,


Mon fichier "local_settings.py" contient les lignes suivantes :


Code :
# LOGS #########################################################################

LOGGING_FILE_HANDLER = {
    'level': 'INFO',
    '()': 'creme.utils.loggers.CompressedTimedRotatingFileHandler',
    'formatter': 'verbose',
    'filename': '~/creme.log', # create a log file in user home directory
    'interval': 1,
    'when': 'D',
}

# LOGS [END]####################################################################


Or le fichier de logs indiqué n'est jamais créé et je n'ai aucun message d'erreur dans les logs d'apache.

Chez moi, Crème CRM s'exécute par l'intermédiaire de WSGI et d'Apache2, donc sous l'utilisateur www-data pour lequel j'ai paramétré au niveau système le répertoire personnel comme étant /srv/www.


Code :
www-data:x:33:33:www-data:/srv/www:/bin/bash


Je devrais donc trouver les logs de Crème CRM dans /srv/www/creme.log, or ce n'est pas le cas.
Et il n'est pas ailleurs car une recherche en tant que root sur toute l'arborescence ne renvoie rien.


Code :
root@cremecrm:~# find / -iname "*creme.log*" -ls
root@cremecrm:~#


Est-ce un bug ? ou ai-je mal configurer quelque chose ?

Merci à vous.
Crème CRM 2.1.4 dans un conteneur LXC sur Debian GNU/Linux 10 Buster avec Apache2 + WSGI
  Répondre
#2
La variable importante est LOGGING (c'est sa valeur finale qui compte, les autres sont là pour la réutilisation) . En définissant un nouveau dictionnaire LOGGING_FILE_HANDLER dans votre 'local_settings.py' comme vous le faites, le dictionnaire LOGGING utilise toujours le dictionnaire LOGGING_FILE_HANDLER tel que définit dans settings.py  (oui désolé c'est un peu technique ça nécessite de comprendre le Python ; c'est la contrepartie à pouvoir faire un peu ce qu'on veut).

Soit vous la redéfinissez LOGGING entièrement dans votre fichier 'local_settings.py' (en copiant de celle de 'settings.py').

Soit vous modifiez LOGGING dans votre 'local_settings.py', par exemple:

Code :
from .settings import LOGGING

LOGGING['handlers']['file'] = {
    'level': 'INFO',
    '()': 'creme.utils.loggers.CompressedTimedRotatingFileHandler',
    'formatter': 'verbose',
    'filename': '~/creme.log',
    'interval': 1,
    'when': 'D',
}

Vous pourriez aussi modifier LOGGING_FILE_HANDLER:


Code :
from .settings import LOGGING_FILE_HANDLER

LOGGING_FILE_HANDLER['level'] = 'INFO'
# etc...
  Répondre
#3
Thumbs Up 
Bonjour genglert et merci pour ta réponse.

Ça fonctionne, le fichier '~/creme.log' est bien créé et se remplit au fur et à mesure de l'arrivée des nouveaux logs.

J'aime beaucoup la deuxième solution qui surcharge juste la partie utile du fichier settings.py :

Code :
from .settings import LOGGING

LOGGING['handlers']['file'] = {
   'level': 'INFO',
   '()': 'creme.utils.loggers.CompressedTimedRotatingFileHandler',
   'formatter': 'verbose',
   'filename': '~/creme.log',
   'interval': 1,
   'when': 'D',
}

Je marque le message comme résolu.
Crème CRM 2.1.4 dans un conteneur LXC sur Debian GNU/Linux 10 Buster avec Apache2 + WSGI
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)