如何用特定的字符串/字符为输出着色,例如如果日志包含单词“ERROR”,它将是红色,“警告”将是黄色,而“信息”将是绿色的 PERL
问问题
217 次
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 回答