xash3d-fwgs icon indicating copy to clipboard operation
xash3d-fwgs copied to clipboard

Логирование в движке

Open nekonomicon opened this issue 2 years ago • 4 comments

Есть идеи насчет переделки логов, в том числе, чтобы они не терялись при повторных запусках движка, например через custom game:

  1. Записывать логи вида engine$timestamp.log. Так у нас будут логи с временной меткой на каждый запуск движка.
  2. Записывать логи в $TEMP. Обычно логи удаляются из $TEMP при перезагрузке системы и на *nix это обычно /tmp и /var/tmp
  3. Записывать логи вида engine$number.log. При этом engine0.log - свежий лог, лог с наибольшим номером - самый старый и имеем лимит на кол-во файлов по дефолту допустим 4 или 5, максимум - 10.
  4. Записывать логи на *nix в /var/log. Там обычно лежат все логи.
  5. В случае с выделенным сервером запускать движок как сервис systemd или rc.d и писать логи в syslog. Может быть удобно на VPS.
  6. Не писать в логи колоркоды. Не приятно глазу.
  7. Продолжать запись в тот же лог при выборе мода через custom game.

nekonomicon avatar Jun 09 '22 22:06 nekonomicon

Во-первых, через Custom Game логфайл должен переоткрываться, а не записываться заново. Увы, я это сломал с переходом на execve, но это я ещё буду править, ибо текущий механизм меня не устраивает от слова совсем.

Во-вторых, мне кажется настолько носиться с логами совершенно не обязательно. Главное, что они пишутся в нужном нам объёме (хотя порой юзеров все равно надо просить перезапускать движок с -dev повыше, но это нормально когда уровень вербозности контроллируется).

a1batross avatar Jun 12 '22 00:06 a1batross

Change Game теперь снова переоткрывает существующий лог.

a1batross avatar Jun 13 '22 20:06 a1batross

Можно кваром сделать расширенное логирование, либо отдельный ключ вместо -log. Рядовому пользователю, конечно, одного файла лога должно хватать. А для тестирования могло бы пригодиться.

Qwertyus3D avatar Jun 21 '22 13:06 Qwertyus3D

Можно и аргумент к log.

Нет у log аргумента -- пишет в engine.log. Есть -- пишет в <аргумент>, делает ротацию и пишет в новый файл. Как сервера в Linux: nginx.log -> nginx.log.2 -> nginx.log.3.gz -> nginx.log.4.gz и так далее.

a1batross avatar Jun 21 '22 13:06 a1batross