МПМ Былины - Мир Древней Руси

МПМ Былины - Мир Древней Руси (https://www.bylins.su/vbb/index.php)
-   Клиенты для игры (https://www.bylins.su/vbb/forumdisplay.php?f=52)
-   -   логи в ммс формата html (https://www.bylins.su/vbb/showthread.php?t=2908)

ludomir 17.01.2007 07:25

логи в ммс формата html
 
хочу собственно иметь красивые логи, в перле не очень силен, знающие люди помогите советом, рассикжите может принцип, каим образом делается субж? )

Раххаль 17.01.2007 21:58

Вложений: 1
Значит так.
1. Включаем цветные логи:
В Conf.pm меняем строку
Код:

$Conf::ansi_log=1;                # write ansi escapes into logs if true
2. Включаем лог. У меня это сделано в конфиге например так:
Код:

hook
{
        my ($day, $mon, $year) = (localtime)[3,4,5];
        $year += 1900;
        $mon += 1;
        my $logname = "logs/#$day-$mon-$year.log";
        MUD::logopen $logname;
} "connect";

3. Если хочется записывать также и время, когда происходит событие, то меняем в Conf.pm строку:
Код:

$Conf::timedlog=1;                # timestamp each logged line
Но там по умолчанию по-моему некрасиво сделано. У меня чуть по-другому - я поменял в файле Mud.pm функцию clog:
Код:

sub clog($) {
  if ($Conf::timedlog)
  {
        my ($sec, $min, $hour) = (localtime)[0,1,2];
        $sec = "0$sec" if length $sec < 2;
        $min = "0$min" if length $min < 2;
        $hour = "0$hour" if length $hour < 2;
        print $logfile "\033[1;30m$hour:$min:$sec>\033[0;37m ",($Conf::ansi_log?toansi($_[0]):CL::strip_colors($_[0])),
                  "\n" if $logfilename;
  } else {
    print $logfile ($Conf::ansi_log?toansi($_[0]):CL::strip_colors($_[0])),
                  "\n" if $logfilename;
  }
}

4. Обрабатываем полученные ansi-логи и преобразовываем в html. Пара слов, почему не стоит писать сразу html: ansi - стандарт. Эти ansi-логи можно уже смотреть с помощью скажем less -r. А html можно раскрашивать кучей способов. Например:
Берем log-colorizer от dikiy отсюда: http://d.scn.ru/proj/mud/log-colorizer/
Ставим perl если не стоит: для винды - http://www.activestate.com/store/activeperl/download/, для всего остального - http://www.perl.org/get.html)
Натравливаем log-colorizer на ansi-лог:
Код:

perl log-colorizer.pl --from logname.log --to logname.html
После всего этого смотрим, что получилось. Если цвета не устраивают, то их можно поправить в начале полученного html в разделе CSS, а можно и в самом log-colorizer.

Напоследок пример лога, который я получил вот этим способом. Файлик надо в .html переименовать. Кстати, лог пишется после того, как проведены все замены и хайлайты.


Часовой пояс GMT +4, время: 12:51.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot