added rabbitmq

alpha
alex 2023-02-18 07:18:54 +01:00
parent e2ebe9077b
commit 2c1491dda1
1 changed files with 78 additions and 1 deletions

View File

@ -1,13 +1,23 @@
package gocnjhelper
import (
"encoding/json"
"os"
"time"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func InitLogger(debug bool, colorizedOutput bool, rabbitMqLogging bool) {
var (
logsClient *Client
gserviceName string
gserviceType string
)
const RabbitMqQueueLogs = "cnj.logs"
func InitLogger(debug bool, colorizedOutput bool, rabbitMqLogging bool, rabbitMqConnAddr string, serviceName string, serviceType string) {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
if debug {
@ -20,6 +30,36 @@ func InitLogger(debug bool, colorizedOutput bool, rabbitMqLogging bool) {
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: "15:04:05"})
}
if rabbitMqLogging {
gserviceName = serviceName
gserviceType = serviceType
logsClient = NewClient(
ExchangeSettings{},
QueueSettings{
Enabled: true,
Name: RabbitMqQueueLogs,
Durable: true,
DeleteWhenUnused: false,
Exclusive: false,
NoWait: false,
Arguments: nil,
QueuePublishSettings: QueuePublishSettings{
Mandatory: false,
Immediate: false,
DeliveryMode: DeliveryModePersistent,
ContentType: ContentTypeJson,
},
},
ChannelQosSettingsDefault,
Config{
ReconnectDelay: 1 * time.Second,
ReInitDelay: 1 * time.Second,
ResendDelay: 5 * time.Second,
},
rabbitMqConnAddr)
}
LogInfof("Debug: %t", debug)
}
@ -33,6 +73,8 @@ func LogInfof(format string, v ...interface{}) {
func LogDebug(msg string) {
log.Debug().Msg(msg)
pushLogMessage(1, msg)
}
func LogDebugf(format string, v ...interface{}) {
@ -54,3 +96,38 @@ func LogFatal(msg string) {
func LogFatalf(format string, v ...interface{}) {
log.Fatal().Msgf(format, v)
}
type RabbitMqLogMessage struct {
MessageType uint8
ServiceName string
ServiceType string
Msg string
Timestamp int64
}
func pushLogMessage(messageType uint8, logMsg string) {
rabbitMqLogMessage := RabbitMqLogMessage{
MessageType: messageType,
ServiceName: gserviceName,
ServiceType: gserviceType,
Msg: logMsg,
Timestamp: time.Now().Unix(),
}
LogInfof("serviceType %s serviceName %s", gserviceName, gserviceName)
msg, err := json.Marshal(rabbitMqLogMessage)
if err != nil {
LogErrorf("Failed to marshal rabbitMqLogMessage, err: %s", err)
return
}
LogInfof("msg %s %s", msg, string(msg))
/*
if err = logsClient.PushQueueMessage(msg); err != nil {
LogErrorf("Failed to push log message, err: %s", err)
}
*/
}