在 macOS 上,PostgreSQL 的日志存储在哪里?

146
我想查看PostgreSQL日志文件以查看我的应用程序写入了什么内容,但我找不到它们。
有什么好的建议吗?
10个回答

241

在OSX上使用Homebrew安装时,日志可以在以下位置找到:

最新的Homebrew:

/opt/homebrew/var/log/postgres.log

或更老:

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

或者适用于较旧版本的Postgres (< 9.6)

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

奖励 - 使用Homebrew检查PostgreSQL是否正在运行:

brew services info --all

2
我必须在/usr/local/var/postgres/postgresql.conf中取消注释一些与日志记录相关的行。 - raine
2
如果您使用Homebrew安装了特定版本,则路径可能会有所不同,例如/opt/homebrew/var/log/postgresql@14.log - Janosch

74

只需查询你的数据库:

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

在我的情况下,它位于"/Library/PostgreSQL/8.4/data/pg_log"。


1
在我的情况下,它是stderr :/将SQL结果作为CSV在这里:http://pastebin.com/20C92z2v - acorello
我喜欢“跨平台”的解决方案。 - acorello
67
如果你的数据库启动失败,而且你还不知道日志文件在哪里,这种方法就行不通了。 - Iain Samuel McLean Elder

54

用于在启动时启动Postgres的plist也可以设置日志文件:

$ 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>

在这种情况下,/usr/local/var/postgres/server.log


35

在 OS X 上,如果你正在使用 EnterpriseDB 版本的 PostgreSQL,那么你的日志文件将位于 /Library/PostgreSQL/8.4/data/pg_log

当然,你需要将 8.4 替换为你正在运行的版本号。


18
对于使用homebrew安装postgres的苹果M1(Big Sur / Monterey)用户,其位置是 -
/opt/homebrew/var/log/postgres.log

9
如果您正在使用Postgres.app,您可以在“首选项”对话框中找到数据目录位置。在该目录中,日志位于postgres-server.log
例如,在我的计算机上,日志位于/Users/nofinator/Library/Application Support/Postgres/var-9.4/postgres-server.log

2

我在我的Mac上安装了不同版本的Postgresql(使用macports),所有日志都可以在这里找到

/opt/local/var/log/postgresql84/postgres.log
/opt/local/var/log/postgresql91/postgres.log
/opt/local/var/log/postgresql92/postgres.log

0

Postgresapp 9.3.5.1及更高版本保留了服务器日志。该日志位于数据目录中,命名为postgres-server.log。


0
对于使用macports的用户,在升级到Big Sur后,可以期望类似/opt/local/var/log/postgresql11(假设您正在运行postgresql 11)的东西。

0

Postgres 13

所有日志在postgres 13版本中按日期顺序排列。 找到它的正确文件夹是:

sudo ls /Library/PostgreSQL/13/data/log

在这里,您可以看到所有已创建的日志文件。要选择任何一个日志文件,请使用以下命令:

sudo vim /Library/PostgreSQL/13/data/log/postgresql-2021-08-20_051906.log


这也适用于Postgres 12。 - masber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接