दिलचस्प पोस्ट
असाइनमेंट ऑपरेटर को ओवरलोड करने के लिए गैर सदस्यीय फ़ंक्शन का उपयोग क्यों नहीं किया जा सकता? एंड्रॉइड एसपी बनाम डीपी ग्रंथों – क्या 'पैमाने' समायोजित करेगा और समर्थन का दर्शन क्या है MongoDB में एरे की एक सरणी पूछताछ MD5 सुरक्षा ठीक है? खाका टेम्पलेट पैरामीटर गिट / मर्कुरियल / बाज़ार बनाम की लोकप्रियता, जो कि शून्य का आकार क्या है? विशिष्ट प्रकार के सदस्य को LINQ में इकाईयों में समर्थित नहीं है केवल प्रारंभिक, इकाई के सदस्य, और इकाई नेविगेशन गुण समर्थित हैं एक्सप्रेस और सॉकेट.ओ के साथ पासपोर्ट का उपयोग कैसे करें? स्थानीय चर के साथ जावास्क्रिप्ट का समर्थन बंद नहीं होता है? कैसे फ़ाइल आकार को पाने के लिए http हेडर से पायथन में सही समकक्ष क्या है "जबकि नहीं EOF" गलती से स्वामी के पास वापस लौटा, अनगिनत परिवर्तन खो गए डीबग बनाम रिलीज .नेट में पॉव फ़ंक्शन के अजीब व्यवहार

PostgreSQL क्वेरी लॉग करने के लिए कैसे?

PostgreSQL 8.3 द्वारा निष्पादित सभी एसक्यूएल के लॉगिंग को कैसे सक्षम करें?

संपादित (अधिक जानकारी) मैंने इन पंक्तियों को बदल दिया है:

log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_statement = 'all' 

और PostgreSQL सेवा को पुनरारंभ करें … लेकिन कोई लॉग नहीं बनाया गया था … मैं Windows Server 2003 का उपयोग कर रहा हूँ।

कोई विचार?

वेब के समाधान से एकत्रित समाधान "PostgreSQL क्वेरी लॉग करने के लिए कैसे?"

आपके data/postgresql.conf log_statement फ़ाइल में, log_statement सेटिंग को 'all' बदलें


संपादित करें

आपकी नई जानकारी को देखते हुए, मैं कहूंगा कि सत्यापित करने के लिए कुछ अन्य सेटिंग हो सकती हैं:

  • सुनिश्चित करें कि आपने log_destination चर को चालू किया है
  • सुनिश्चित करें कि आप logging_collector चालू करते हैं
  • यह भी सुनिश्चित करें कि pg_log निर्देशिका पहले से ही data निर्देशिका के अंदर मौजूद है, और यह कि पोस्टग्रेज़ उपयोगकर्ता इसे लिख सकता है

अपने /etc/postgresql/9.3/main/postgresql.conf संपादित करें, और निम्नानुसार लाइनों को परिवर्तित करें।

नोट : यदि आपको postgresql.conf फ़ाइल नहीं मिली है, तो बस टाइप करें $locate postgresql.conf को टर्मिनल में $locate postgresql.conf

  1. #log_directory = 'pg_log' लिए log_directory = 'pg_log'

  2. #log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' से log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

  3. #log_statement = 'none' लिए log_statement = 'all'

  4. #logging_collector = off करने के लिए logging_collector = on

  5. वैकल्पिक : SELECT set_config('log_statement', 'all', true);

  6. sudo /etc/init.d/postgresql restart या sudo service postgresql restart

  7. Postgresql में आग क्वेरी select 2+2

  8. वर्तमान लॉग इन /var/lib/pgsql/9.2/data/pg_log/ खोजें

लॉग फाइलें एक समय में बहुत बढ़ती हैं, और आपकी मशीन को मार सकती हैं। अपनी सुरक्षा के लिए, एक बाँट स्क्रिप्ट लिखें जो लॉग को हटाना और पोस्टग्रेस्क्ल सर्वर को पुनः आरंभ करेगा।

धन्यवाद @ पॉल, @ जेरेट हार्डी, ज़ोलटन @ रिक्स बेक, @ लेटिफ प्रेमानी

 SELECT set_config('log_statement', 'all', true); 

संगत उपयोगकर्ता के साथ कनेक्ट होने के बाद उपरोक्त क्वेरी का उपयोग हो सकता है। यह सत्र समाप्त होने तक लॉगिंग को प्रभावित करेगा

log_statement को all सेट करें:

त्रुटि रिपोर्टिंग और लॉगिंग – log_statement

आपको PostgreSQL में इन लाइनों को जोड़ने और सर्वर को पुनरारंभ करने की आवश्यकता है:

 log_directory = 'pg_log' log_filename = 'postgresql-dateformat.log' log_statement = 'all' logging_collector = on 

1 से ऊपर के उत्तर मैं निम्नलिखित कॉन्फ़िग का उपयोग करता हूँ

 log_line_prefix = '%t %c %u ' # time sessionid user log_statement = 'all' 

इस वेब पेज पर दिए गए निर्देशों के आधार पर, CentOS 6.4 (रेड हैट 4.4.7-3) के लिए अधिक विवरण के लिए पोस्टग्रेएसक्यूएल 9.2 चलाना है:

  1. सेट ( log_statement = 'all' ) log_statement = 'all' और log_min_error_statement = error में /var/lib/pgsql/9.2/data/postgresql.conf
  2. PostgreSQL कॉन्फ़िगरेशन पुनः लोड करें मेरे लिए, यह /usr/pgsql-9.2/bin/pg_ctl reload -D /var/lib/pgsql/9.2/data/ चलाकर किया गया था।
  3. /var/lib/pgsql/9.2/data/pg_log/ में आज का लॉग /var/lib/pgsql/9.2/data/pg_log/

एफवाईआई: अन्य समाधान केवल डिफॉल्ट डेटाबेस से आम तौर पर postgres को लॉग करेंगे – दूसरे लॉग इन करने के लिए; उनके समाधान से शुरू; फिर:

 ALTER DATABASE your_database_name SET log_statement = 'all'; 

रेफरी: https://serverfault.com/a/376888 / log_statement