import logging logger = logging.getLogger(‘discord’) logger.setLevel(logging.DEBUG) handler = logging.FileHandler(filename=’discord.log’, encoding=’utf-8′, mode=’w’) handler.setFormatter(logging.Formatter(‘%(asctime)s:%(levelname)s:%(name)s: %(message)s’)) logger.addHandler(handler)
Отслеживать
задан 30 янв 2021 в 12:30
70 1 1 серебряный знак 12 12 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Логирования пользователей
Это можно сделать через event
К примеру, если вы хотите что бы каждое сообщение которое отправляется в чат отображалось в консоле, тогда используйте on_message:
Также вы можете посмотреть что содержит в себе message
Хотите узнать что происходит с пользователем, к примеру, какую роль он получил, делайте через on_member_update:
Также можете посмотреть что содержит в себе переменные before и after
Больше методов можете посмотреть здесь
Логирования самого сервера
Тут уже больше возможностей, я покажу несколько, а ссылку на остальные я оставлю снизу.
Логи дискорд сервера | Журнал аудита
И так начнем с on_guild_channel_create(посмотреть что содержит в себе channel можете так само как я показывал пару раз с верху):
На очереди в нас on_guild_update, этот метод может вам выдавать:
- Изменения названия сервера
- Изменен канала AFK
- Изменение тайм-аута AFK канала
- и т.д.
Вывод сообщений в отдельный канал
К примеру возьмем on_message (но перед этим вам надо импортировать утилиты discord’а)
Источник: ru.stackoverflow.com
Гайд по уведомлениям из GrayLog в discord

Можно сделать бота, который будет отправлять сообщения сохраняя полную разметку сообщений и предоставляя их в удобочитаемой форме. Вот пример сообщения:

Плюсы относительно смс уведомлений в том, что discord поддерживает markdown разметку, что позволяет делать комфортное представление для подачи сообщения, а также дискорд бесплатен, что при большом количестве ошибок в логах быть плюсом.
Есть несколько способов настроить GrayLog для отправки сообщений в discord, подробнее они описаны в данном опенсорсном решении: discord_alerts.
Настраиваем бота:

- Переходим по ссылке и создаем бота discord applications (можно за одно добавить аватарку)

- Переходим во вкладку бот и жмём `добавить бота`

Как сделать логи на своем дискорд сервере? | Discord | Дискорд

- Жмём reset token для удаленного доступа к боту и сохраняем токен


- Идем в генератор URL настраиваем доступы бота, добавляем возможность отправлять сообщения


- Открываем сгенерированный URL в бразузере



- Копируем ссылку на канал на сервере в приложении дискорда


На данный момент у нас должны быть пройденные следующие шаги:
- У нас есть token для бота
- У нас есть ID канала для записи сообщений
- Бот добавлен на сервер и он оффлайн
Если вы сделали всё правильно, то данные условия должны быть выполнены.
Далее мы запустим приложение которое принимает логи из GrayLog.
Опция 1 — запуск в docker
Самый простой способ — запустить через docker-compose файл, просто заполнив поля связанные с токеном, ID канала и портом для http сообщений. Вот пример yaml файла:
version: ‘3’ services: discord_alerts: image: dangdancheg/discord_alerts:latest ports: — 3458:3458 environment: — TOKEN=PASTE_YOUR_DISCORD_TOKEN — CHANNEL_ID=PASTE_CHANNELID_FROM_CHANNEL_LINK — PORT=3458
Далее можно просто запустить команду docker compose up, и бот готов
Опция 2 — запуск в билдов
Ищем необхдимую платформу в следующей папке build.
Создаем и заполняем .env файл.
TOKEN=YOUR_TOKEN CHANNEL_ID=YOUR_CHAN_ID PORT=3458
Скачиваем готовый запускаемый файл и сохраняем в папке с .env файлом:
—> linux/mipsle: discord_alerts —> linux/arm: discord_alerts —> darwin/386: discord_alerts —> freebsd/arm: discord_alerts —> freebsd/386: discord_alerts —> freebsd/amd64: discord_alerts —> openbsd/386: discord_alerts —> openbsd/amd64: discord_alerts —> windows/386: discord_alerts —> windows/amd64: discord_alerts —> linux/s390x: discord_alerts —> netbsd/386: discord_alerts —> netbsd/amd64: discord_alerts —> netbsd/arm: discord_alerts —> linux/mips64le: discord_alerts —> linux/mips64: discord_alerts —> linux/386: discord_alerts —> darwin/amd64: discord_alerts —> linux/amd64: discord_alerts —> linux/mips: discord_alerts
Отлично! Теперь у нас есть настроенный приемник для сообщений. Теперь осталось настроить выход у graylog для отправки сообщений.
Настраиваем GrayLog
- Заходим во вкладку Alerts:

- Открываем пункт с уведомлениями — notifications:

- Выбираем http уведомления:

- Выбираем любое название и добавляем адрес для вызова (по указанному порту и с методом /json)

- Мы должны получить следующее уведомление в дискорде:

Если что-либо не получилось оставляйте комментарии, постараюсь помочь.
Источник: habr.com
Журнал аудита
Журнал аудита (англ. Audit Logs) — журнал действий пользователей на сервере.
Описание [ ]
Хм, вы никогда не задумывались, кто создал новый канал на вашем сервере, или кто забанил недоброжелательного участника? Не бойтесь, журнал аудита здесь, чтобы донести вам о всём, что произошло на сервере. С него никак нельзя удалить какую-либо запись
Где он находится? [ ]
Итак, журнал аудита вы можете здесь. Для начала зайдите в настройки сервера а уже там есть вкладка с надписью «Журнал аудита».

Примечание. Вы можете просматривать журналы аудита только в том случае, если у вас есть права на просмотр журналов аудита или права администратора После того, как вы нажали вкладку «Журнал аудита», вы увидите что-то похожее на это:

Всякий раз, когда пользователь выполняет действие, оно регистрируется в журнале аудита на срок до 90 дней и запись не может быть удалена или отредактирована. Следующие действия регистрируются в журнале аудита:
- Создание канала, удаление и обновления;
- Создание разрешения канала, удаление и обновления;
- Создание, удаление и обновление эмодзи и стикеров;
- Создание, удаление и обновление приглашений;
- Баны, кики и разбаны;
- Обновления роли и псевдонима участника;
- Создание ролей, удаление и обновления;
- Обновления сервера;
- Создание, удаление и обновление вебхуков;
- Удаление сообщений пользователями и ботами.
- Блокировка нарушений автомодом и его редактирование
- Редактирование прав для команд
- Создание, редактирование и отмена событий.
- Открытие, редактирование и закрытие трибуны.
- Закрепление и открепление сообщений.
- Выдача и снятие тайм-аута.
Получение деталей [ ]
Для многих из этих действий дополнительные сведения можно получить, развернув вкладку действия. И, если вы пытаетесь найти конкретное действие или действие, выполненное конкретным пользователем, не бойтесь! Discord дает возможность фильтровать результаты, полученные обоими этими вариантами! Найти его можно сверху самого журнала
Источник: discord.fandom.com