Вхід у файл у службі Windows 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 register [-N ім'я служби] [-U ім’я користувача] [-P пароль] [-D datadir] [-S a [uto] | d [emand]] [-w] [-t секунди] [-s] [-o options]

Як змусити сервер увійти у файл? Примітка: я не хочу використовувати інсталятор одним клацанням, я просто хочу працювати з розпакованими бінарними файлами.


Переконайтеся , що ви включили log_statementвlog_statement = 'all'
Chris

Відповіді:


13

Знайдіть свій файл postgresql.confу datadir

Знайдіть розділ, який виглядає приблизно так

#------------------------------------------------------------------------------
# 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.

просто коментуйте та використовуйте ці параметри. Потім перезапустіть послугу postgres,

Оскільки ви працюєте postgresql в Windows, можливо, вам не дозволять редагувати, postgresql.confпоки служба працює. Якщо це так:

  • вимкнення послуги Postgres
  • редагувати postgresql.conf
  • запустити послугу Postgres

Спробувати !!!


Дякуємо, що вказали на мене в правильному напрямку, Роландо, але ваша відповідь просто не правильна ... Коли ви цитуєте файл конфігурації, ви можете мати його лише stderr, csvlog, syslog, eventlogтам. Я повинен був змінити наступні властивості замість: logging_collector = on, log_directory = ..., log_filename=.... Якщо ви відредагуєте свою відповідь, я прийму її.
Вік

1
Гей Вік, дякую. Я початківець у PostgreSQL і надаю йому незначну підтримку. Я просто стара країна MySQL DBA.
RolandoMySQLDBA

1
log_directory = 'C: / Користувачі / Пітер / Документи / jonbloe / система / журнали' працювали на мене. Але не використовуйте Windows "\", оскільки вона працює як відхід, і журнали потрапляють у папку PGDATA / UsersPeterDocumentsjonbloesystemlogs
peter2108
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.