Значит так.
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 переименовать. Кстати, лог пишется после того, как проведены все замены и хайлайты.