在Python中,我们可以使用以下命令将command line
日志添加到文件中,而不是console
日志:
python script.py >> mylogfile.txt
如何使用PHP?我试着
php script.php >> mylogfile.txt
但是它不工作。
我首先使用php script.php > mylog.txt
,它返回一些日志文本到控制台,所以我认为它没有写入日志,但它确实如此。我想要 php script.php > mylog.txt 2>&1
,它将添加任何日志到文件中。
文章说它不能在Windows上工作,但我用的是Windows 10,它可以工作。
与之前一样,错误消息与正常输出混合。但是通过从脚本输出管道,我可以从正常输出:
php outwitherrors.php 2> errors.log
这一次,您将只看到这些消息:
打开foobar.log文件作业完成
但是,如果您查看运行脚本的目录,将会创建一个名为errors.log的新文件,其中包含错误消息。数字2是用于标识的命令行句柄标准误差。注意,1是标准输出的句柄,而0是标准错误的句柄。使用命令行中的>
符号,您可以将输出定向到特定位置。
虽然这看起来不是很令人兴奋,但它是一个非常方便的工具系统管理。一个简单的应用程序,运行一些脚本
php outwitherrors.php >> transaction.log 2>> errors.log
使用'>> ',我告诉终端将新消息附加到现有消息中日志(而不是覆盖它)。正常的操作消息如下现在记录到文件transaction.log,我可能每个月仔细查看一次,只是为了检查一切正常。同时,任何需要更快响应的错误都以errors.log文件结束,其他cron作业可能根据需要每天(或更频繁地)通过电子邮件发送给我。
Unix和Windows的命令行有一个不同,当涉及到管道输出时,你应该知道。在Unix中,您可以将标准输出和标准错误流合并到一个目的地,例如:
php outwitherrors.php > everything.log 2>&1
它将标准错误重新路由到标准输出,这意味着两者都得到写入日志文件everything.log.