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] '
,日志条目将如下所示:
至于问题:为什么对postgresql.conf
的更改被忽略?一些典型的原因是:
-
更改后不重新加载它,通过直接或通过
pg_ctl
或service
命令将SIGHUP
发送给邮局主管。
编辑错误的文件。见:Where are my postgres *.conf files?
【讨论】:
以上是关于pgfouine.php 读取 Postgres 日志时出错的主要内容,如果未能解决你的问题,请参考以下文章
AWS postgres RDS 读取复制如何处理架构切换?
postgres procedura脚本不读取file.sh提供的输入
未读取 database.yml 中的 ENV 变量(Rails 4.2.0、RubyMine 7、Postgres、Ruby 2.2.0、DotEnv)