【问题标题】:Perl: color error log with specific characterPerl:具有特定字符的颜色错误日志
【发布时间】:2013-10-26 13:50:54
【问题描述】:

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

【问题讨论】:

  • 把它着色成什么样的输出?打印机?终端?什么操作系统?
  • 抱歉没有详细说明,windows box中的浏览器输出错误日志
  • <FONT COLOR="######">text text text text text</FONT>
  • 这些人建议 标签是怎么回事?现在是 2013 年,各位。十多年来, 标签一直不是最好的解决方案。

标签: html perl


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您想为 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】:

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

      $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;
      }   
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-02
        • 2016-03-04
        • 2014-06-19
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 2018-03-19
        • 1970-01-01
        相关资源
        最近更新 更多