14 Ocak 2013 Pazartesi

PostgreSQL'de SQL sorgularını loglama

Postgresql SQL sorgularını debug amaçlı incelemek istediğimde bir çok parametreyi açmam gerekiyor. Acaba hangisi parametreyi açmayı unuttum diye düşünmemek için buraya ilgili parametreleri eklemek istedim. Umarım sizler içinde faydalı olur.

Not: Buradaki ayarlar PostgreSQL 9.X  sürümüne göre ayarlanmıştır.

log_destination = 'stderr'              # Valid values are combinations of
                                        # stderr, csvlog, syslog, and eventlog,
                                        # depending on platform.  csvlog
                                        # requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr and csvlog
                                        # into log files. Required to be on for
                                        # csvlogs.
                                        # (change requires restart)



# These are only used if logging_collector is on:
log_directory = 'pg_log'                # directory where log files are written,
                                        # can be absolute or relative to PGDATA


log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,


Aşağıdaki log_rotation_size gerekli değil ama faydalıdır. Log dosyasının çok fazla şişmesini engellersiniz.

log_rotation_size = 10MB                # Automatic rotation of logfiles will
                                                            # happen after that much log output.
                                                           # 0 disables.


silent_mode = off           # Run server silently.
                                        # DO NOT USE without syslog or
                                        # logging_collector
                                        # (change requires restart)



Aşağıdaki değişken oldukça önemli. Hangi seviyede loglama yapacağınızı belirtiyorsunuz.
all: Herşey
ddl: CREATE,ALTER,DROP vs.
mod: ddl + güncelleme operasyonları INSERT, UPDATE, DELETE, TRUNCATE vs.

log_statement = 'all'                   # none, ddl, mod, all


Eğer amacınız sadece belli bir süreden çok çalışan sorguları bulmak ise aşağıdaki parametreyi de aktif edip istediğiniz süreyi milisaniye cinsinden yazmanız gerekir.


#log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements
                                                                   # and their durations, > 0 logs only
                                                                   # statements running at least this number
                                                                   # of milliseconds



Bu değişikliklerden sonra postgresql servisi restart edilmelidir.

Hiç yorum yok:

Yorum Gönder