Wo sind die PostgreSQL-Protokolle unter macOS?

102

Ich möchte einen Blick auf die PostgreSQL-Protokolldateien werfen, um zu sehen, was meine App auf sie schreibt, aber ich kann sie nicht finden.

Irgendwelche Ideen?

Basilikode
quelle

Antworten:

35

Wenn Sie unter OS X die EnterpriseDB-Installation von PostgreSQL verwenden, befinden sich Ihre Protokolldateien in /Library/PostgreSQL/8.4/data/pg_log

Natürlich sollten Sie die von Ihnen verwendete Versionsnummer durch 8.4 ersetzen.

Jeremiah Peschka
quelle
168

Bei der Installation von OSX Homebrew finden Sie das Protokoll unter:

/usr/local/var/log/postgres.log 

oder für ältere Versionen von Postgres (<9.6)

/usr/local/var/postgres/server.log
Mikko Ohtamaa
quelle
1
Ich musste einige protokollierungsbezogene Zeilen in/usr/local/var/postgres/postgresql.conf
raine
63

Fragen Sie einfach Ihre Datenbank:

SELECT 
    * 
FROM 
    pg_settings 
WHERE 
    category IN( 'Reporting and Logging / Where to Log' , 'File Locations')
ORDER BY 
    category,
    name;

In meinem Fall befindet es sich in "/Library/PostgreSQL/8.4/data/pg_log".

Frank Heikens
quelle
1
hmm, in meinem Fall ist es stderr: / sql Ergebnis als csv hier: pastebin.com/20C92z2v
basilikode
u Ich mag die "plattformübergreifende" Lösung
Basilikode
41
Dies funktioniert nicht, wenn Ihre Datenbank nicht gestartet werden konnte und Sie noch nicht wissen, wo sich die Protokolldateien befinden.
Iain Samuel McLean Elder
41

Das plistzum Starten Ihrer Postgres beim Booten verwendete Protokoll kann auch die Protokolldatei festlegen:

$ dir ~/Library/LaunchAgents
org.postgresql.postgres.plist

$ cat ~/Library/LaunchAgents/org.postgresql.postgres.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  [...]
  <key>StandardErrorPath</key>
  <string>/usr/local/var/postgres/server.log</string>
</dict>
</plist>

Also in diesem Fall /usr/local/var/postgres/server.log.

Lammhaanxy
quelle
6

Wenn Sie Postgres.app verwenden , finden Sie den Speicherort des Datenverzeichnisses im Dialogfeld Einstellungen. In diesem Verzeichnis befindet sich das Protokoll unter postgres-server.log.

Auf meinem Computer befindet sich das Protokoll beispielsweise unter /Users/nofinator/Library/Application Support/Postgres/var-9.4/postgres-server.log.

Nofinator
quelle
2

Ich habe verschiedene Postgresql-Versionen auf meinem Mac installiert (mit Macports), und alle Protokolle finden Sie hier

/opt/local/var/log/postgresql84/postgres.log
/opt/local/var/log/postgresql91/postgres.log
/opt/local/var/log/postgresql92/postgres.log
plang
quelle
0

Postgresapp 9.3.5.1 und höher führen ein Serverprotokoll. Das Protokoll befindet sich im Datenverzeichnis mit dem Namen postgres-server.log.

Martin Sommer
quelle
-1

Suchen Sie im Ordner / var / log / pg_log /

systempuntoout
quelle
1
Nicht da, wahrscheinlich weil das EnterpriseDB MacOS-Paket verwendet wurde.
Basilikode