pgfouine.php 读取 Postgres 日志时出错

Posted

技术标签:

【中文标题】pgfouine.php 读取 Postgres 日志时出错【英文标题】:Error in reading Postgres log by pgfouine.php 【发布时间】:2013-06-04 07:00:54 【问题描述】:

我在 bash 脚本 /etc/rc.d/init.d/postgresql 中通过选项 -l $LOGFILE 定义了带有 LOGFILE 的 Postgres 配置

日志给出以下输出:

2013-06-07 11:28:18 EDTrentgrowLOG: 声明: select count(*) from (从结果限制 1 中选择 *)测试 2013-06-07 11:28:18 美国东部时间 rentgrowLOG:持续时间:0.333 毫秒

pgfouine.php 无法读取此输出 - 错误是: “pgFouine 在您的日志文件中没有找到任何有效的 PostgreSQL 日志行:”

我还发现我在 postgresql.conf 中的更改根本不会影响输出。

如何准备一个 pgfouine.php 可读的 Postgres 日志文件?

【问题讨论】:

postgresql.conf 中的 log_line_prefix 是什么?传递给 pgFouine 的选项是什么? log_line_prefix = '%t [%p]: [%l-1] ' C:\pgf>\wamp\bin\php\php5.3.13\php.exe pgfouine.php -file postgresql -2013-06-07_182652.log -logtype stderr 我没有看到更改配置文件中的选项会更改输出。我无法在 Linux 上安装 php,所以我使用的是 windows 【参考方案1】:

我还发现我在 postgresql.conf 中的更改不会影响 完全输出。

这可能是问题的根源。您的 log_line_prefix 被忽略。否则,按照 pgFouine 的建议将前缀设置为 '%t [%p]: [%l-1] ',日志条目将如下所示:

2013-06-13 16:38:18 CEST [6203]: [2-1] LOG: 持续时间: 0.169 ms 语句: select 1;

至于问题:为什么对postgresql.conf 的更改被忽略?一些典型的原因是:

    更改后不重新加载它,通过直接或通过pg_ctlservice 命令将SIGHUP 发送给邮局主管。 编辑错误的文件。见:Where are my postgres *.conf files?

【讨论】:

以上是关于pgfouine.php 读取 Postgres 日志时出错的主要内容,如果未能解决你的问题,请参考以下文章

读取数据问题同时更新和/或写入 Postgres DB

Postgres JDBC 客户端卡在从套接字读取

AWS postgres RDS 读取复制如何处理架构切换?

postgres procedura脚本不读取file.sh提供的输入

Postgres 写/读锁

未读取 database.yml 中的 ENV 变量(Rails 4.2.0、RubyMine 7、Postgres、Ruby 2.2.0、DotEnv)