Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для verteich
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2019
    Сообщений
    117
    Репутация:
    2 ±

    Логи сервера

    Как можно реализовать систему логов сервера? К примеру игрок купил дом и это сохранилось в его логах и в логах домов, это сохраняется в базе данных, игрок авторизовался, это действие тоже залогировалось в базу данных, как такое можно сделать и как лучше всего будет?
    Также, как можно будет по минимуму уменьшать размер такой базы? Так как место не у всех бесконечное :)

  2. #2
    Аватар для vvw
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.08.2019
    Сообщений
    45
    Репутация:
    9 ±
    Есть инструкменты из коробки, например, для PostgreSQL, позволяющие логировать события. В MySQL вроде бы тоже должны быть какие-то инструменты из коробки.

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от verteich Посмотреть сообщение
    Как можно реализовать систему логов сервера? К примеру игрок купил дом и это сохранилось в его логах и в логах домов, это сохраняется в базе данных, игрок авторизовался, это действие тоже залогировалось в базу данных, как такое можно сделать и как лучше всего будет?
    Также, как можно будет по минимуму уменьшать размер такой базы? Так как место не у всех бесконечное :)
    Если логи чисто для себя и планируешь их просматривать вручную - можно всё писать в файл, взяв какой-нибудь плагин для пущего эффекта. Тут экономить особо не получится так, чтоб не пострадало удобство.



    Если планируешь различные выборки данных делать - mysql. Создаёшь одну таблицу, в которой будут перечислены типы логов, а-ля:
    id type_name
    0 Покупка дома
    1 Продажа дома
    2 Передача денег игроку


    И вторую таблицу, в которой будут содержаться сами логи. Вторая таблица будет ссылаться на первую, чтоб не хранить одинаковый текст.
    Например, лог того, как игрок с ID аккаунта 3026 сначала купил дом под ID 100, а потом его продал:
    id account_id type_id value
    1 3026 0 100
    1 3026 1 100

    При нужде, можно количество столбцов "value_№" увеличить (например, чтоб при передаче денег в "account_id" хранить ID того, кто передал, в "value_1" хранить ID того, кому передали, а в "value_2" хранить сумму, которую передали) и уже для чтения таких логов написать соответствующие запросы, которые будут объединять вторую таблицу с первой и формировать на основе данных читаемый текст вместо набора чисел.
    Такой вариант будет одним из самых экономных для MySQL.


    Ну и если у тебя ограниченное дисковое пространство, что в обоих случаях два пути решения: либо периодически выгружать логи на компьютер с хостинга и чистить хостинг от них, либо просто удалять старые логи время от времени. Третьего не дано :)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    verteich (31.08.2019)
  5. #4
    Аватар для verteich
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2019
    Сообщений
    117
    Репутация:
    2 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если логи чисто для себя и планируешь их просматривать вручную - можно всё писать в файл, взяв какой-нибудь плагин для пущего эффекта. Тут экономить особо не получится так, чтоб не пострадало удобство.



    Если планируешь различные выборки данных делать - mysql. Создаёшь одну таблицу, в которой будут перечислены типы логов, а-ля:
    id type_name
    0 Покупка дома
    1 Продажа дома
    2 Передача денег игроку


    И вторую таблицу, в которой будут содержаться сами логи. Вторая таблица будет ссылаться на первую, чтоб не хранить одинаковый текст.
    Например, лог того, как игрок с ID аккаунта 3026 сначала купил дом под ID 100, а потом его продал:
    id account_id type_id value
    1 3026 0 100
    1 3026 1 100

    При нужде, можно количество столбцов "value_№" увеличить (например, чтоб при передаче денег в "account_id" хранить ID того, кто передал, в "value_1" хранить ID того, кому передали, а в "value_2" хранить сумму, которую передали) и уже для чтения таких логов написать соответствующие запросы, которые будут объединять вторую таблицу с первой и формировать на основе данных читаемый текст вместо набора чисел.
    Такой вариант будет одним из самых экономных для MySQL.


    Ну и если у тебя ограниченное дисковое пространство, что в обоих случаях два пути решения: либо периодически выгружать логи на компьютер с хостинга и чистить хостинг от них, либо просто удалять старые логи время от времени. Третьего не дано :)
    Ясно, какие плагины порекомендуете, для записи логов и т.д, и способы какие? Можно ли так же используя файлы на сайт вывести логи?

  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от verteich Посмотреть сообщение
    Ясно, какие плагины порекомендуете, для записи логов и т.д, и способы какие?
    Плагин посоветовать не могу, ибо всё зависит от твоих нужд. Ну, например, FileManager позволяет работать не только внутри папки "scriptfiles" и не подвержен багам стандартных функций, вызывающих краши.

    Цитата Сообщение от verteich Посмотреть сообщение
    Можно ли так же используя файлы на сайт вывести логи?
    Вывести - можно. Как и содержимое обычного текстового файла. Со всеми сопутствующими трудностями с поиском нужной информации и т.п.


    Опять же, если планируется искать какую-то конкретную информацию среди логов - лучше делать через MySQL. Логи на файлах пригодятся разве что для того, чтоб иметь возможность в редкие моменты найти ту или иную инфу по прошлым дням. Часто и на постоянной основе производить поиск конкретной информации среди всего файла - гораздо более затратное занятие, нежели с реализацией на MySQL.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    Blood (01.09.2019)
  8. #6
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Есть более новый плагин и более новой кодовой базой. pawn-fsutil

    Цитата Сообщение от verteich Посмотреть сообщение
    Ясно, какие плагины порекомендуете, для записи логов и т.д, и способы какие? Можно ли так же используя файлы на сайт вывести логи?
    Southclaws сделал логгер для SA-MP. Можно использовать его.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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