问题 Apache httpd可以将错误记录到控制台而不是Windows下的日志文件吗?


我在Windows机器上使用Apache / PHP进行不频繁的开发,因此我选择将apache作为控制台进程而不是服务运行。如果错误可以记录到控制台窗口而不是日志文件,那将是很好的,所以我可以立即看到它们。这可以以某种方式完成吗?似乎apache并没有内置这样的功能,我也找不到能够做到这一点的mod。


7549
2018-04-27 23:27


起源



答案:


是的,它可以。

编辑你的 httpd.conf 归档到  使用此指令将错误日志输出到控制台窗口:

ErrorLog "|more"

10
2017-09-07 11:53



在我的Windows 8上不起作用。它给了我错误:(OS 2)系统找不到指定的文件。 :AH00089:无法启动Erro rLog进程'更多'。 AH00015:无法打开日志 - Peihui
关于Windows解决方案的任何信息? - Petah
无法启动ErrorLog进程'more'。 - user3673
ErrorLog“| C:/Windows/System32/more.com” - François Breton


答案:


是的,它可以。

编辑你的 httpd.conf 归档到  使用此指令将错误日志输出到控制台窗口:

ErrorLog "|more"

10
2017-09-07 11:53



在我的Windows 8上不起作用。它给了我错误:(OS 2)系统找不到指定的文件。 :AH00089:无法启动Erro rLog进程'更多'。 AH00015:无法打开日志 - Peihui
关于Windows解决方案的任何信息? - Petah
无法启动ErrorLog进程'more'。 - user3673
ErrorLog“| C:/Windows/System32/more.com” - François Breton


我不确定apache是​​否允许你这样做,但是你尝试过使用:

tail -f /the/apache/logfile.log ?

这应该让你实时看日志(假设你没有缓冲它或任何东西)

编辑: 由于这是一台Windows机器,使用TextPad可以完成同样的事情(只需让它在更改时自动重新加载日志文件)。它的功能与...相同 tail


3
2018-04-27 23:33



这是一台Windows机器,我已经说过了。但我想 tail 也可以为此编译。嗯,这是一个选项,虽然我更喜欢只有一个控制台窗口。嗯......然后我可能会把它设置为服务,然后创建一个批处理文件来启动它,然后 tail 然后停止服务。或者只是用C#编写我自己的启动器/读卡器/塞子程序,这很容易。仍然 - 也许有一个更优雅的解决方案? - Vilx-
我喜欢这样的建议,即你在文件中有错误并在控制台上显示。但是,是的,尾部原生于* nix而不是Windows,虽然它可以在Windows中工作,最简单的解决方案我知道是cygwin - Chris Wagner
哇我完全浏览了Windows部分:(。我更新了我的答案,使用TextPad,它应该工作 - Mitch Dempsey
@ Flash84x - 实际上一个快速的谷歌搜索显示了很多原生的Win32尾部实现,包括微软本身的一些实现。 Cygwin对我来说有点极端。 :P - Vilx-
@webdestroya - 有趣的想法。我自己也在使用Notepad ++,但它也有这个功能。 - Vilx-


只是想用一个可能困扰一群人的答案来更新这个问题。

场景:

  • 运行apache2 docker容器
  • 想要输出 docker run <container_id> 显示日志

在没有太多关于docker的讨论的情况下,我运行相关命令来运行apache并同时显示日志:

/usr/sbin/apache2 & tail -f /var/log/apache2/*

你可以根据需要修改它(我正在使用 debian:jessie 图片)。如上面的评论所述,你得到了 tail 对于Windows,我相信 & 运算符也应该在Windows中工作(不确定)。

此命令将阻止您的shell并保持日志中的萌芽...

希望这有助于某人


3
2017-07-25 04:43



我相信这不会正常工作,因为当你试图停止或终止这个进程(或docker容器)时,它只会停止尾进程,而不是apache,然后继续运行并且下次尝试启动时将无法启动容器。 - Dustin