2013-10-17 39 views
-3

如何使用特定的字符串/字符對輸出進行着色,如日誌中包含單詞「ERROR」,它將是RED,「警告」將是黃色,「Info」將是綠色在PERLPerl:特定字符的顏色錯誤日誌

+7

顏色它到什麼樣的輸出?打印機?終奌站?什麼OS? – ysth

+0

對不起,在窗口中的瀏覽器輸出錯誤日誌 –

+2

'文本文本文本文本文本' –

回答

-1

如果你要輸出這一個網頁瀏覽器,你可以使用: (請記住,如果日誌文件是先大後的部份連接將超時在Web瀏覽器)

$logfile = "/var/log/log.txt" ; 
open INFILE, "$logfile" ; 
@loglines = <INFILE> ; 
close INFILE; 

foreach $line (@loglines) { 
    if ($line =~ /ERROR/) { 
     $line = "<span style=\"color: red;\">" . $line . "</span>"; 
    } 
    elsif ($line =~ /Warning/) { 
    $line = "<span style=\"color: yellow;\">" . $line . "</span>"; 
    } 
    elsif ($line =~ /Info/) { 
    $line = "<span style=\"color: green;\">" . $line . "</span>"; 
    } 
    print $line; 
} 

如上所述,使用CSS類代替範圍標籤會更好。

+6

爲了上帝的愛,''標籤自1999年以來已被棄用! – friedo

1

是否要爲HTML輸出着色(例如輸出行如<FONT COLOR="red">Error!</FONT>)......或者在終端中以彩色顯示錯誤消息?

如果是後者,你可以做這樣的事情,它會以粗體,紅色顯示文本'錯誤信息'。

use if $^O eq 'MSWin32', 'Win32::Console::ANSI'; 
use Term::ANSIColor qw(:constants); 
print BOLD, RED, "error message\n", RESET; 
3

如果您正在生成HTML,在我看來,這將是應用類的元素一個不錯的選擇,如infowarningerror,然後您可以使用樣式CSS。

你如何設置課程?這一切都取決於您用來生成HTML的內容。如果你只是在打印原始文本,<span class="info">...</span>就可以做到。如果您使用的是DOM構建器,則可以將它作爲散列參數傳遞到某個地方或其他地方。

如何應用CSS樣式表?我搜索了「css文字顏色」,並在1000萬個結果中挑選了this tutorial