Как изменить приоритеты сообщений, регистрируемых маршрутизатором buffalo - PullRequest
0 голосов
/ 26 февраля 2020

Я уточнил вопрос для ясности (согласно запросу).

Я использую Buffalo framework. У меня есть много сообщений в журналах, сообщающих, что кто-то на inte rnet пытается достичь несуществующей конечной точки или использует метод HTTP, который не поддерживается службой. Я думаю, что эти сообщения происходят от маршрутизатора Буффало (определенно не из моего кода). Вот пример сообщения: «метод не найден: HEAD /some/path".

Вопрос: как я могу изменить приоритет этих сообщений с« ошибка »на« уведомление »или« информация ». На мой взгляд, такой высокий приоритет - плохой выбор для сообщений, которые указывают на ошибки на стороне клиента, а не в моем коде.

Исходное содержимое:

Почему не найден метод "подобные сообщения" : HEAD / some / path "регистрируются с приоритетом" ошибка "? Как я могу изменить приоритет на «уведомление» или «информация» для такого рода сообщений? Причина: мне не нравится, когда меня просыпают каждый раз, когда какой-то ребенок ie на inte rnet пробует новый скрипт на моем сайте.

Вот моя конфигурация маршрутизатора:

    app.GET("/{path:.+}", fs)
    app.GET("/", fs)

fs является обычным http.Handler, завернутым с использованием buffalo.WrapHandler().

1 Ответ

0 голосов
/ 28 февраля 2020

Я копался в коде, и кажется, что нет простого способа сделать то, что я хочу (без опции конфигурации).

Но можно предоставить собственный обработчик ошибок:

func App() *buffalo.App {
    app = buffalo.New(buffalo.Options{
        // ...
    })
    app.ErrorHandlers[405] = errorHandler
}
func errorHandler(status int, origErr error, c Context) error {
    //...
}

defaultErrorHandler (используется, если пользовательский не указан) в своей 4-й строке записывает сообщение об ошибке в журналы. К сожалению, это также делает много других вещей. Он содержит 74 строки и обеспечивает различное поведение в зависимости от типа содержимого запроса и среды, в которой запускается приложение (разработка, тестирование, производство). И это не может быть легко скопировать и вставить, поскольку он использует частные функции и типы.

Похоже, мне нужно запросить новую функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...