PostgreSQL विंडोज़ सेवा में एक फ़ाइल में प्रवेश करना


11

मुझे निम्नलिखित कमांड चलाने के लिए एक विकल्प की आवश्यकता है:

C:\xxx\pgsql\bin\pg_ctl" -D "C:\xxx\pgsql\data" -l "C:\yyy\log\pgsql.log" start

इस तरह सर्वर शुरू होता है और लॉग इन होता है C:\yyy\log\pgsql.log। जब मैं सर्वर को एक सेवा के रूप में पंजीकृत करने का प्रयास करता हूं - कोई लॉगिंग विकल्प उपलब्ध नहीं होता है और सर्वर इवेंट व्यूअर में प्रवेश करता है। Pg_ctl प्रलेखन से:

pg_ctl रजिस्टर [-N servicename] [-U उपयोगकर्ता नाम] [-P पासवर्ड] [-D datadir] [-S a [uto] | d [emand]] [-w] [-t सेकंड] [-s] [-o विकल्प]

मैं फ़ाइल में लॉग इन करने के लिए सर्वर को कैसे मजबूर कर सकता हूं? नोट: मैं एक-क्लिक इंस्टॉलर का उपयोग नहीं करना चाहता, मैं सिर्फ अनज़िपेड बायनेरिज़ के साथ काम करना चाहता हूं।


सुनिश्चित करें कि आप सक्षम हैं log_statementकरने के लिएlog_statement = 'all'
क्रिस

जवाबों:


13

postgresql.confडेटादिर में अपना पता लगाएँ

इस तरह दिखने वाले सेक्शन को खोजें

#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

#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 = off                # 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,
                                        # can include strftime() escapes
#log_truncate_on_rotation = off         # If on, an existing log file of the
                                        # same name as the new log file will be
                                        # truncated rather than appended to.
                                        # But such truncation only occurs on
                                        # time-driven rotation, not on restarts
                                        # or size-driven rotation.  Default is
                                        # off, meaning append to existing files
                                        # in all cases.
log_rotation_age = 7d                   # Automatic rotation of logfiles will
                                        # happen after that time.  0 disables.
#log_rotation_size = 10MB               # Automatic rotation of logfiles will
                                        # happen after that much log output.
                                        # 0 disables.

बस इन मापदंडों को असहज और उपयोग करें। फिर, पोस्टग्रेज सेवा को फिर से शुरू करें,

जब से आप विंडोज में पोस्टग्रैक्स्ल चला रहे हैं, यह संभव है कि postgresql.confसेवा समाप्त होने पर आपको संपादित करने की अनुमति न हो । अगर ऐसी बात है:

  • पोस्टग्रैज सेवा बंद करें
  • संपादित करें postgresql.conf
  • पोस्टग्रेज सेवा शुरू करें

कोशिश करो !!!


मुझे सही दिशा, रोलांडो की ओर इशारा करने के लिए धन्यवाद, लेकिन आपका जवाब सही नहीं है ... जैसा कि आप कॉन्फ़िगरेशन फ़ाइल को उद्धृत करते हैं, आप केवल stderr, csvlog, syslog, eventlogवहां जा सकते हैं । मैं बजाय निम्नलिखित गुण बदलना पड़ा: logging_collector = on, log_directory = ..., log_filename=...। यदि आप अपना उत्तर संपादित करते हैं तो मैं इसे स्वीकार करूंगा।
विक

1
हे विक, धन्यवाद। मैं PostgreSQL में नौसिखिया हूं और इसके लिए मामूली सहायता प्रदान करता हूं। मैं सिर्फ एक पुराना देश MySQL DBA हूं।
RolandoMySQLDBA

1
log_directory = 'C: / उपयोगकर्ता / पीटर / दस्तावेज़ / jonbloe / प्रणाली / लॉग' ने मेरे लिए काम किया। लेकिन विंडोज '\' का उपयोग न करें क्योंकि यह एक भागने के रूप में काम करता है और लॉग एक फ़ोल्डर में समाप्त हो जाता है PGDATA / UsersPeterDocumentsjonbloesystemlogs
peter2108
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.