【问题标题】:php tailing two different logsphp尾随两个不同的日志
【发布时间】:2014-02-06 19:38:29
【问题描述】:

我目前正在使用 php 脚本来跟踪我的服务器上的日志文件,但是根据我正在运行的软件,日志文件可能位于不同的位置并具有不同的名称。目前我必须手动调整我的脚本以适应这种情况。

这是我在程序一中使用的:

$cmd = "tail -75 /home/user/data.log";

这是我用于程序二的内容:

$cmd = "tail -75 /home/user/log/data2.log";

这是我的 logtail 脚本目前的样子:

<?php
$cmd = "tail -75 /home/user/data.log";
exec("$cmd 2>&1", $output);
$str = implode("\n", $output);
$patterns[0] = '0000000';
$replacements[0] = '';
$outputline = str_replace($patterns, $replacements, $str);
echo ("$outputline");
?>

是否可以设置脚本来检查正在使用的日志文件,而不是手动更改脚本?它始终是 /home/user/data.log 或 /home/user/log/data2.log。

【问题讨论】:

  • 你不能设置两个变量$cmd1$cmd2 吗?然后只需检测正在运行的程序并运行相应的命令。
  • 另一个选项file_exists() 进行快速检查

标签: php string logging tail


【解决方案1】:

为什么不检查文件然后采取相应措施?

if(file_exists("/home/user/data.log"))
  $cmd = "tail -75 /home/user/data.log";
else if(file_exists("/home/user/log/data2.log"))
  $cmd = "tail -75 /home/user/log/data2.log";
else
  die("No file to tail");

【讨论】:

    【解决方案2】:

    为什么不同时跟踪它们,而不关心使用的是哪一个呢? :-)

    tail -q fileA fileB 2> /dev/null
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-10
      • 2018-10-14
      • 1970-01-01
      • 2017-02-15
      • 2012-05-08
      • 1970-01-01
      • 2020-06-23
      • 2013-04-01
      相关资源
      最近更新 更多