PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 08/11/2011 16:06:50

ebs
Membre

[Log] activer et desactiver les logs sans restart ?

Bonjour,

J'ai une question un peu candide sur l'activation/désactivation des logs d'un serveur postgresql v9.1 (installé via les packages backports debian)

Jusqu'à présent j'avais fait deux fichiers de configuration, l'une ou j'active les logs et l'autre ou ces derniers sont disablés. Je jongle entre les deux configurations lorsque je veux faire tourner un pgfouine sur mes logs
Voici les parties qui différent

conf avec activation des logs:

log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d-%H.log'
log_rotation_age = 60
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_error_verbosity = default
log_hostname = on
log_line_prefix = '%t [%p]: [%l-1] '
log_statement = 'all'

conf avec désactivation des logs:

log_destination = 'stderr'
logging_collector = off
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d-%H.log'
log_rotation_age = 60
log_checkpoints = off
log_connections = off
log_disconnections = off
log_duration = off
log_error_verbosity = default
log_hostname = off
log_line_prefix = '%t [%p]: [%l-1] '
log_statement = 'none'

Tout ceci fonctionne bien sauf que je ne peux activer/désactiver mes logs sans faire un restart alors que j'aimerai juste faire un reload à cause du logging_collector qui nécessite un restart du service.

Je voulais donc savoir s'il y avait un best practice sur ce sujet, car une idée bien moche m'est venue à l'idée à savoir d'avoir une conf avec désactivation des logs comme suit:

log_destination = 'stderr'
logging_collector = on      # on active le logging_collector
log_directory = 'pg_log'
log_filename = 'postgresql-no_log' # et en fait pg_log/postgresql-no_log est un symlink vers /dev/null
log_rotation_age = 0                       # on desactive la rotation des logs
log_checkpoints = off
log_connections = off
log_disconnections = off
log_duration = off
log_error_verbosity = default
log_hostname = off
log_line_prefix = '%t [%p]: [%l-1] '
log_statement = 'none'

Ainsi quand je jongle entre mes confs je ne restart jamais le service vu que logging_collector sera toujours "on" mais dans un cas j'écris dans un vrai fichier alors que dans le second je redirige tout vers /dev/null... ça me paraît trop laid et j'imagine que je suis passé à côté de qqchose, donc si vous avez une piste je suis preneur!

Merci d'avance

Hors ligne

#2 08/11/2011 16:41:56

Marc Cousin
Membre

Re : [Log] activer et desactiver les logs sans restart ?

le logging_collector à off, c'est juste pour ne plus avoir de logs ?


Marc.

Hors ligne

#3 08/11/2011 17:10:45

ebs
Membre

Re : [Log] activer et desactiver les logs sans restart ?

oui tout à fait (à tort sûrement)

Hors ligne

#4 08/11/2011 17:40:16

Marc Cousin
Membre

Re : [Log] activer et desactiver les logs sans restart ?

Pourquoi ne pas simplement passer le log_statement de all à none ? ça désactivera 99,9% des messages de la log, ce qui devrait être suffisant. Et marchera avec un reload.

La log sert aussi en temps normal, à avoir des traces si quelque chose plante par exemple…


Marc.

Hors ligne

#5 08/11/2011 18:02:06

ebs
Membre

Re : [Log] activer et desactiver les logs sans restart ?

oui tu as raison c'est pas malin ce que je voulais faire. Ta porposition est plus sage et ça m'évitera de passer à côté de qqchose
merci pour tout


edit: car le francais que j'ai utilisé m'a piqué les yeux smile

Dernière modification par ebs (08/11/2011 18:15:12)

Hors ligne

Pied de page des forums