1.9 KiB
1.9 KiB
Telegram Logrus Hook
Этот хук для logrus отправляет сообщения журнала (и соответствующие поля) в Telegram API.
Установка
Установить пакет командой:
go get git.company.lan/gopkg/telegramhook
Использование
import (
"time"
log "git.company.lan/gopkg/logrus"
"git.company.lan/gopkg/telegramhook"
)
func main() {
hook, err := telegramhook.NewTelegramHook(
"MyCoolApp",
"MYTELEGRAMTOKEN",
"@mycoolusername",
telegramhook.WithLevel(logrus.ErrorLevel),
telegramhook.WithTimeout(30 * time.Second),
)
if err != nil {
log.Fatalf("Encountered error when creating Telegram hook: %s", err)
}
log.AddHook(hook)
// Receive messages on failures
log.Errorf("Uh oh...")
...
}
Вы также можете использовать настроенный http.Client, например, использующий SOCKS5-прокси:
import (
"context"
"net"
"net/http"
"time"
log "git.company.lan/gopkg/logrus"
"git.company.lan/gopkg/telegramhook"
"golang.org/x/net/proxy"
)
func main() {
dialer, err := proxy.SOCKS5("tcp", "127.0.0.1:54321", nil, proxy.Direct)
dialContext := func(ctx context.Context, network, address string) (net.Conn, error) {
return dialer.Dial(network, address)
}
httpTransport := &http.Transport{
DialContext: dialContext,
DisableKeepAlives: true,
}
httpClient := &http.Client{Transport: httpTransport}
hook, err := telegramhook.NewTelegramHookWithClient(
"MyCoolApp",
"MYTELEGRAMTOKEN",
"@mycoolusername",
httpClient,
telegramhook.WithTimeout(30 * time.Second),
)
if err != nil {
log.Fatalf("Encountered error when creating Telegram hook: %s", err)
}
log.AddHook(hook)
// Receive messages on failures
log.Errorf("Uh oh...")
...
}