Подробный лог

Возможно ли включить подробное логирование в продакшн-инстансе Discourse с самохостингом через Docker-образ без взлома кода?
Я перечитал множество предложений в этом месте, но ни одно из них не сработало или не дало никакой дополнительной информации.

1 лайк

Я понимаю вашу боль — хотя я об этом не знаю!

В плагине Chatbot я могу перенаправлять подробные логи уровня Info (опционально через настройку) в Warn в Production, чтобы видеть их. Это критически важно для отслеживания проблем с ИИ.

1 лайк

:slight_smile: … Я видел ваши посты … мои проблемы связаны с плагин SAML, и даже хотя я хорошо знаю SAML и протоколы аутентификации, я не могу ничего сделать без логов, и похоже, что плагин вообще не работает (я даже пробовал создать идеальный SAML-ответ в соответствии с параметрами в плагине). Я вижу большой потенциал в Discourse, но установка, конфигурация и особенно логирование очень странные (если сравнивать с GitLab, который использует ту же платформу).

Похоже, мне придётся быстро освоить среду Ruby, чтобы решить мои проблемы :slight_smile:

1 лайк

Решение проблемы с плагином SAML :slight_smile: … проблема именно в плагине, а не в omniauth или библиотеке ruby-saml (я постараюсь задокументировать то, что сделал, но по сути это сочетание недостаточной и вводящей в заблуждение документации, а также странных решений в коде, без должной отладки. Добавлены некоторые комментарии, но без системы отслеживания проблем понять систему сложно).

Чтобы остаться в рамках темы, предлагаю сделать следующее (согласно моим ограниченным знаниям о Discourse и Ruby):

  • вручную отредактировать файл контейнера (containers/app.yml)
  • подсказка: если вы хотите, чтобы контейнер имел другое имя, вы можете изменить имя файла в директории containers и выполнить все команды по пути, чтобы изменить app на <ваше_имя> (вероятно, это можно сделать и другими способами, но у меня не было времени это исследовать)
  • форкните плагин в GitHub в вашем собственном пространстве, чтобы вы могли манипулировать кодом; вы всегда можете вызывать его так же, как и любой другой плагин из файла конфигурации контейнера
  • во многих местах вы можете просто добавить File.write('/var/www/discourse/log/production.log', 'Некий текст', mode: 'a'), что будет записываться в лог-файл каждый раз, когда интерпретатор доходит до этой части кода
  • вы также можете сделать форк проекта Discourse на GitHub и клонировать его из вашего репозитория, если хотите внести улучшения в сам Discourse
1 лайк

Это могло бы сработать!

Но если вы хотите остаться на Rails, я думаю, что это лучший вариант:

(пока кто-нибудь не поможет нам добавить опцию уровня информации для продакшена!)

Спасибо за дополнительный вариант… Моих знаний Ruby/Rails недостаточно для выполнения таких задач :slight_smile: Мне нужно больше учиться, чтобы достичь вашего уровня знаний. Я постараюсь улучшить плагин SAML в этом направлении (надеюсь, скоро), но сейчас мне нужно завершить установку другого ПО на одном из пилотных проектов, где Discourse является одним из компонентов.

1 лайк