Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Клиенты для игры

Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc...

Ответ
 
Опции темы Опции просмотра
Старый 17.01.2007, 07:25   #1
ludomir
Отличник форума
 
Регистрация: 03.05.2006
Адрес: Новосибирск
Сообщений: 337
По умолчанию логи в ммс формата html

хочу собственно иметь красивые логи, в перле не очень силен, знающие люди помогите советом, рассикжите может принцип, каим образом делается субж? )
ludomir вне форума   Ответить с цитированием
Старый 17.01.2007, 21:58   #2
Раххаль
Старший Мадер
 
Регистрация: 06.03.2004
Адрес: Москва
Сообщений: 239
По умолчанию

Значит так.
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 переименовать. Кстати, лог пишется после того, как проведены все замены и хайлайты.
Вложения
Тип файла: txt example.txt (18.2 Кб, 17 просмотров)
Раххаль вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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


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