-3

如何用特定的字符串/字符为输出着色,例如如果日志包含单词“ERROR”,它将是红色,“警告”将是黄色,而“信息”将是绿色的 PERL

4

3 回答 3

3

如果您正在生成 HTML,在我看来,将类应用于您的元素是一个不错的选择,例如info, warning, error,然后您可以使用 CSS 对其进行样式设置。

你如何设置一个班级?这一切都取决于您使用什么来生成 HTML。如果您只是打印原始文本,<span class="info">...</span>则可以解决问题。如果您使用的是 DOM 构建器,您可能可以将它作为散列参数传入某处或其他地方。

如何应用 CSS 样式表?我在 Google 上搜索了“css 文本颜色”,并从1000 万条结果中挑选了本教程。

于 2013-10-17T23:55:07.217 回答
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;
于 2013-10-17T21:32:38.337 回答
-1

如果您要将其输出到网络浏览器,您可以使用:

$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;
}   
于 2013-10-17T21:24:01.230 回答