Files
go-api-pkg/fluentd/logger.go

55 lines
951 B
Go

package fluentd
import (
"fmt"
"log"
"time"
"github.com/fluent/fluent-logger-golang/fluent"
)
type Logger struct {
fluent *fluent.Fluent
appName string
}
func NewLogger(appName, fHost string, fPort int) (*Logger, error) {
config := fluent.Config{
FluentHost: fHost,
FluentPort: fPort,
WriteTimeout: 100 * time.Millisecond,
}
fluent, err := fluent.New(config)
if err != nil {
return nil, err
}
return &Logger{fluent, appName}, nil
}
func (l *Logger) Log(format string, v ...any) {
mapData := map[string]string{
"message": fmt.Sprintf(format, v...),
}
err := l.fluent.Post(l.appName, mapData)
if err != nil {
log.Println("Error sending log: ", err)
}
}
func (l *Logger) Ping() error {
mapData := map[string]string{
"message": "Checking is Fluentd alive",
}
err := l.fluent.Post(l.appName, mapData)
if err != nil {
return err
}
return nil
}
func (l *Logger) Close() error {
return l.fluent.Close()
}