การกำหนดให้ PostgreSQL เก็บ log คำสั่ง SQL
1. เข้าไปที่แก้ไขไฟล์ postgresql.conf
กรณีใช้ postgresql 14 ถ้ารุ่นอื่นก็เปลี่ยนตัวเลขรุ่นตามต้องการ โดยป้อนคำสั่งผ่าน Terminal
sudo
vim /etc/postgresql/14/main/postgresql.conf
จากนั้น ไปหาและแก้ไขค่าตามนี้
กดปุ่ม i เพื่อเข้าโหมด insert ของ โปรแกรม vim แล้วแก้ไข
log_destination
= 'csvlog'
logging_collector
= on
log_directory = 'pg_log'
log_filename = 'test_postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'
เมื่อแก้ไขเสร็จให้กดปุ่ม
Esc
เพื่อออกจากโหมดแก้ไข
กด :w บันทึก
กด :q ออก
2. ทำการ รีสตาร์ทเซอร์วิสของ postgresql ใหม่ ด้วยคำสั่ง
sudo systemctl restart postgresql
จากนั้นไป เมื่อมีการใช้คำสั่ง SQL
จัดการกับฐานข้อมูลก็จะถูกเก็บ log ไว้ที่
/var/lib/postgresql/14/main/
ภายใต้โฟลเดอร์ pg_log
เรียกดูไฟล์
sudo ls -l /var/lib/postgresql/14/main/pg_log/
เมื่อพบไฟล์เป้าหมาแล้ว ก็เอาออกมาไว้ที่อื่น เช่น โฟลเดอร์ Desktop
sudo cat /var/lib/postgresql/14/main/pg_log/ชื่อไฟล์log.csv > Desktop/ชื่อไฟล์log.csv
เป็นอันเรียบร้อย