2012-10-27 11 views
7

Piszę klasę pliku dziennika PHP, ale chcę dodać kolor do wiersza zapisanego w pliku.Kolor pliku logu PHP

Problem, który mam, to kolor zmienia również kolor terminala, chcę tylko zmienić kolor linii zapisanej tylko w pliku dziennika.

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); 
    } 
} 
+2

należy dodać sekwencję koniec znak kolor. Np .: 'sprintf (" \ 033 [33m% s \ 033 [0m ", $ tekst)' –

+0

dzięki :) alotttttt – meWantToLearn

+0

@ catalin.costache post to jako odpowiedź plz, więc mogłem oznaczyć to – meWantToLearn

Odpowiedz

12

Powinieneś dodać sekwencję znaczników koloru końcowego. Np: sprintf("\033[33m%s\033[0m", $text)

Oto lista kodów kolorystycznych zaczerpnięte z 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", 
    ); 

Przykład użycia:

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

+0

hej @ catalin.costache Miałem [podobne pytanie] (http://stackoverflow.com/questions/23429683/changing-color i-output-of-mamps-php-error-log-in-the-terminal). Myślisz, że możesz to sprawdzić? –