mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-11 22:14:02 +01:00
``` git ls-files \*.js \*.go \ | xargs sed -i '1i // SPDX-FileCopyrightText: 2022 Free Mobile\n// SPDX-License-Identifier: AGPL-3.0-only\n' git ls-files \*.vue \ | xargs sed -i '1i <!-- SPDX-FileCopyrightText: 2022 Free Mobile -->\n<!-- SPDX-License-Identifier: AGPL-3.0-only -->\n' ```
62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
// SPDX-FileCopyrightText: 2022 Free Mobile
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
package kafka
|
|
|
|
import (
|
|
"fmt"
|
|
"sync/atomic"
|
|
|
|
"github.com/Shopify/sarama"
|
|
|
|
"akvorado/common/reporter"
|
|
)
|
|
|
|
func init() {
|
|
// The logger in Sarama is global. Do the same.
|
|
sarama.Logger = &GlobalKafkaLogger
|
|
}
|
|
|
|
// GlobalKafkaLogger is the logger instance registered to sarama.
|
|
var GlobalKafkaLogger kafkaLogger
|
|
|
|
type kafkaLogger struct {
|
|
r atomic.Value
|
|
}
|
|
|
|
// Register register the provided reporter to be used for logging with sarama.
|
|
func (l *kafkaLogger) Register(r *reporter.Reporter) {
|
|
l.r.Store(r)
|
|
}
|
|
|
|
// Unregister removes the currently registered reporter.
|
|
func (l *kafkaLogger) Unregister() {
|
|
var noreporter *reporter.Reporter
|
|
l.r.Store(noreporter)
|
|
}
|
|
|
|
func (l *kafkaLogger) Print(v ...interface{}) {
|
|
r := l.r.Load()
|
|
if r != nil && r.(*reporter.Reporter) != nil {
|
|
if e := r.(*reporter.Reporter).Debug(); e.Enabled() {
|
|
e.Msg(fmt.Sprint(v...))
|
|
}
|
|
}
|
|
}
|
|
func (l *kafkaLogger) Println(v ...interface{}) {
|
|
r := l.r.Load()
|
|
if r != nil && r.(*reporter.Reporter) != nil {
|
|
if e := r.(*reporter.Reporter).Debug(); e.Enabled() {
|
|
e.Msg(fmt.Sprint(v...))
|
|
}
|
|
}
|
|
}
|
|
func (l *kafkaLogger) Printf(format string, v ...interface{}) {
|
|
r := l.r.Load()
|
|
if r != nil && r.(*reporter.Reporter) != nil {
|
|
if e := r.(*reporter.Reporter).Debug(); e.Enabled() {
|
|
e.Msg(fmt.Sprintf(format, v...))
|
|
}
|
|
}
|
|
}
|