modify dingtalk and discord logger
This commit is contained in:
parent
3e754dab0e
commit
f3200450e4
3 changed files with 45 additions and 1 deletions
|
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"github.com/open-dingtalk/dingtalk-stream-sdk-go/chatbot"
|
||||
"github.com/open-dingtalk/dingtalk-stream-sdk-go/client"
|
||||
dinglog "github.com/open-dingtalk/dingtalk-stream-sdk-go/logger"
|
||||
|
||||
"github.com/sipeed/picoclaw/pkg/bus"
|
||||
"github.com/sipeed/picoclaw/pkg/channels"
|
||||
|
|
@ -39,6 +40,9 @@ func NewDingTalkChannel(cfg config.DingTalkConfig, messageBus *bus.MessageBus) (
|
|||
return nil, fmt.Errorf("dingtalk client_id and client_secret are required")
|
||||
}
|
||||
|
||||
// Set the logger for the Stream SDK
|
||||
dinglog.SetLogger(logger.NewLogger("dingtalk"))
|
||||
|
||||
base := channels.NewBaseChannel("dingtalk", cfg, messageBus, cfg.AllowFrom,
|
||||
channels.WithMaxMessageLength(20000),
|
||||
channels.WithGroupTrigger(cfg.GroupTrigger),
|
||||
|
|
|
|||
|
|
@ -45,6 +45,15 @@ type DiscordChannel struct {
|
|||
}
|
||||
|
||||
func NewDiscordChannel(cfg config.DiscordConfig, bus *bus.MessageBus) (*DiscordChannel, error) {
|
||||
|
||||
discordgo.Logger = logger.NewLogger("discord").
|
||||
WithLevels(map[int]logger.LogLevel{
|
||||
discordgo.LogError: logger.ERROR,
|
||||
discordgo.LogWarning: logger.WARN,
|
||||
discordgo.LogInformational: logger.INFO,
|
||||
discordgo.LogDebug: logger.DEBUG,
|
||||
}).Log
|
||||
|
||||
session, err := discordgo.New("Bot " + cfg.Token)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create discord session: %w", err)
|
||||
|
|
|
|||
|
|
@ -130,7 +130,6 @@ func getCallerInfo() (string, int, string) {
|
|||
|
||||
funcName := fn.Name()
|
||||
if strings.HasPrefix(funcName, "runtime.") {
|
||||
fmt.Println("===", funcName)
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
@ -296,6 +295,7 @@ func FatalCF(component string, message string, fields map[string]any) {
|
|||
// Logger implements common Logger interface
|
||||
type Logger struct {
|
||||
component string
|
||||
levels map[int]LogLevel
|
||||
}
|
||||
|
||||
// Debug logs debug messages
|
||||
|
|
@ -335,17 +335,48 @@ func (b *Logger) Warnf(format string, v ...any) {
|
|||
logMessage(WARN, b.component, fmt.Sprintf(format, v...), nil)
|
||||
}
|
||||
|
||||
// Warningf logs formatted warning messages
|
||||
func (b *Logger) Warningf(format string, v ...any) {
|
||||
logMessage(WARN, b.component, fmt.Sprintf(format, v...), nil)
|
||||
}
|
||||
|
||||
// Errorf logs formatted error messages
|
||||
func (b *Logger) Errorf(format string, v ...any) {
|
||||
//debugCallerInfo()
|
||||
logMessage(ERROR, b.component, fmt.Sprintf(format, v...), nil)
|
||||
}
|
||||
|
||||
// Fatalf logs formatted fatal messages and exits
|
||||
func (b *Logger) Fatalf(format string, v ...any) {
|
||||
logMessage(FATAL, b.component, fmt.Sprintf(format, v...), nil)
|
||||
}
|
||||
|
||||
// Log logs a message at a given level with caller information
|
||||
// msgL: message level (DEBUG, INFO, WARN, ERROR, FATAL)
|
||||
// caller: unused parameter reserved for compatibility
|
||||
// format: format string
|
||||
// a: format arguments
|
||||
func (b *Logger) Log(msgL, caller int, format string, a ...interface{}) {
|
||||
level := LogLevel(msgL)
|
||||
if b.levels != nil {
|
||||
if lvl, ok := b.levels[msgL]; ok {
|
||||
level = lvl
|
||||
}
|
||||
}
|
||||
logMessage(level, b.component, fmt.Sprintf(format, a...), nil)
|
||||
}
|
||||
|
||||
// Sync flushes log buffer (no-op for this implementation)
|
||||
func (b *Logger) Sync() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// WithLevels sets log levels mapping for this logger
|
||||
func (b *Logger) WithLevels(levels map[int]LogLevel) *Logger {
|
||||
b.levels = levels
|
||||
return b
|
||||
}
|
||||
|
||||
// NewLogger creates a new logger instance with optional component name
|
||||
func NewLogger(component string) *Logger {
|
||||
return &Logger{component: component}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue