【问题标题】:PHP log file colorPHP 日志文件颜色
【发布时间】:2012-10-17 13:37:28
【问题描述】:

我正在编写一个 PHP 日志文件类,但我想为写入文件的行添加颜色。

我遇到的问题是颜色也会改变终端的颜色,我想要实现的只是改变写入日志文件的行的颜色。

class logClass extends Singleton {

    private function checkDate() {
        return date("onSj");
    }

    public function logNotice($str) {
        $this->write($str, "\033[33m");
    }

    public function write($string, $color) {
        $fileName = $this->checkDate();
        $handle = fopen('error.log', 'a');
        fwrite($handle, "$color" . date("Y-m-d H:i:s") . $string . "\n");
       fclose($handle);
    }
}

【问题讨论】:

  • 您应该添加一个结束颜色标记序列。例如:sprintf("\033[33m%s\033[0m", $text)
  • @catalin.costache 将其作为答案发布,以便我可以标记它
  • 给原木上色真是个好主意!谢谢:) +1
  • 日志应该是彩色的 :) 我明天把课程上传到 github ;)

标签: php linux shell logging


【解决方案1】:

您应该添加一个结束颜色标记序列。例如:sprintf("\033[33m%s\033[0m", $text)

这里是来自https://github.com/kevinlebrun/colors.php的颜色代码列表

$colorFormats = array(
        // styles
        // italic and blink may not work depending of your terminal
        'bold' => "\033[1m%s\033[0m",
        'dark' => "\033[2m%s\033[0m",
        'italic' => "\033[3m%s\033[0m",
        'underline' => "\033[4m%s\033[0m",
        'blink' => "\033[5m%s\033[0m",
        'reverse' => "\033[7m%s\033[0m",
        'concealed' => "\033[8m%s\033[0m",
        // foreground colors
        'black' => "\033[30m%s\033[0m",
        'red' => "\033[31m%s\033[0m",
        'green' => "\033[32m%s\033[0m",
        'yellow' => "\033[33m%s\033[0m",
        'blue' => "\033[34m%s\033[0m",
        'magenta' => "\033[35m%s\033[0m",
        'cyan' => "\033[36m%s\033[0m",
        'white' => "\033[37m%s\033[0m",
        // background colors
        'bg_black' => "\033[40m%s\033[0m",
        'bg_red' => "\033[41m%s\033[0m",
        'bg_green' => "\033[42m%s\033[0m",
        'bg_yellow' => "\033[43m%s\033[0m",
        'bg_blue' => "\033[44m%s\033[0m",
        'bg_magenta' => "\033[45m%s\033[0m",
        'bg_cyan' => "\033[46m%s\033[0m",
        'bg_white' => "\033[47m%s\033[0m",
    );

示例用法:

sprintf($colorFormats['green'], $someText)

【讨论】:

  • 嘿@catalin.costache 我有一个similar question。认为您可以检查一下吗?
  • 谢谢。您可以使用它来避免发送标头error_log(sprintf($colors[$color], $message));
猜你喜欢
  • 1970-01-01
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多