mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 16:04:38 +01:00
Added logger singleton
This commit is contained in:
@@ -9,6 +9,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"erupe-ce/utils/logger"
|
||||
|
||||
"github.com/gorilla/handlers"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/jmoiron/sqlx"
|
||||
@@ -16,7 +18,6 @@ import (
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Logger *zap.Logger
|
||||
DB *sqlx.DB
|
||||
ErupeConfig *_config.Config
|
||||
}
|
||||
@@ -24,7 +25,7 @@ type Config struct {
|
||||
// APIServer is Erupes Standard API interface
|
||||
type APIServer struct {
|
||||
sync.Mutex
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
erupeConfig *_config.Config
|
||||
db *sqlx.DB
|
||||
httpServer *http.Server
|
||||
@@ -33,8 +34,9 @@ type APIServer struct {
|
||||
|
||||
// NewAPIServer creates a new Server type.
|
||||
func NewAPIServer(config *Config) *APIServer {
|
||||
|
||||
s := &APIServer{
|
||||
logger: config.Logger,
|
||||
logger: logger.Get().Named("API"),
|
||||
erupeConfig: config.ErupeConfig,
|
||||
db: config.DB,
|
||||
httpServer: &http.Server{},
|
||||
|
||||
@@ -7,9 +7,12 @@ import (
|
||||
"erupe-ce/network/binpacket"
|
||||
"erupe-ce/network/mhfpacket"
|
||||
"erupe-ce/utils/byteframe"
|
||||
"erupe-ce/utils/logger"
|
||||
"erupe-ce/utils/mhfcid"
|
||||
"erupe-ce/utils/mhfcourse"
|
||||
"erupe-ce/utils/token"
|
||||
"sync"
|
||||
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
@@ -39,24 +42,27 @@ const (
|
||||
BroadcastTypeWorld = 0x0a
|
||||
)
|
||||
|
||||
var commands map[string]_config.Command
|
||||
var (
|
||||
commands map[string]_config.Command
|
||||
once sync.Once // Ensures that initialization happens only once
|
||||
commandsMu sync.Mutex // Mutex to ensure thread safety for commands map
|
||||
)
|
||||
|
||||
func init() {
|
||||
commands = make(map[string]_config.Command)
|
||||
zapConfig := zap.NewDevelopmentConfig()
|
||||
zapConfig.DisableCaller = true
|
||||
zapLogger, _ := zapConfig.Build()
|
||||
defer zapLogger.Sync()
|
||||
logger := zapLogger.Named("commands")
|
||||
cmds := _config.ErupeConfig.Commands
|
||||
for _, cmd := range cmds {
|
||||
commands[cmd.Name] = cmd
|
||||
if cmd.Enabled {
|
||||
logger.Info(fmt.Sprintf("Command %s: Enabled, prefix: %s", cmd.Name, cmd.Prefix))
|
||||
} else {
|
||||
logger.Info(fmt.Sprintf("Command %s: Disabled", cmd.Name))
|
||||
func (server *Server) initCommands() {
|
||||
once.Do(func() {
|
||||
commands = make(map[string]_config.Command)
|
||||
|
||||
commandLogger := logger.Get().Named("command")
|
||||
cmds := _config.ErupeConfig.Commands
|
||||
for _, cmd := range cmds {
|
||||
commands[cmd.Name] = cmd
|
||||
if cmd.Enabled {
|
||||
commandLogger.Info(fmt.Sprintf("%s: Enabled, prefix: %s", cmd.Name, cmd.Prefix))
|
||||
} else {
|
||||
commandLogger.Info(fmt.Sprintf("%s: Disabled", cmd.Name))
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func sendDisabledCommandMessage(s *Session, cmd _config.Command) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
_config "erupe-ce/config"
|
||||
"erupe-ce/server/discordbot"
|
||||
"erupe-ce/utils/gametime"
|
||||
"erupe-ce/utils/logger"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"go.uber.org/zap"
|
||||
@@ -17,7 +18,6 @@ import (
|
||||
// Config struct allows configuring the server.
|
||||
type Config struct {
|
||||
ID uint16
|
||||
Logger *zap.Logger
|
||||
DB *sqlx.DB
|
||||
DiscordBot *discordbot.DiscordBot
|
||||
ErupeConfig *_config.Config
|
||||
@@ -39,7 +39,7 @@ type Server struct {
|
||||
GlobalID string
|
||||
IP string
|
||||
Port uint16
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
db *sqlx.DB
|
||||
erupeConfig *_config.Config
|
||||
acceptConns chan net.Conn
|
||||
@@ -92,7 +92,7 @@ func NewServer(config *Config) *Server {
|
||||
}
|
||||
server := &Server{
|
||||
ID: config.ID,
|
||||
logger: config.Logger,
|
||||
logger: logger.Get().Named("channel-" + fmt.Sprint(config.ID)),
|
||||
db: config.DB,
|
||||
erupeConfig: config.ErupeConfig,
|
||||
acceptConns: make(chan net.Conn),
|
||||
@@ -114,9 +114,9 @@ func NewServer(config *Config) *Server {
|
||||
questCacheData: make(map[int][]byte),
|
||||
questCacheTime: make(map[int]time.Time),
|
||||
}
|
||||
server.initCommands()
|
||||
|
||||
server.i18n = getLangStrings(server)
|
||||
|
||||
return server
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/mhfpacket"
|
||||
"erupe-ce/utils/byteframe"
|
||||
"erupe-ce/utils/logger"
|
||||
"erupe-ce/utils/stringstack"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -23,7 +24,7 @@ import (
|
||||
// Session holds state for the channel server connection.
|
||||
type Session struct {
|
||||
sync.Mutex
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
server *Server
|
||||
rawConn net.Conn
|
||||
cryptConn *network.CryptConn
|
||||
|
||||
@@ -2,6 +2,7 @@ package discordbot
|
||||
|
||||
import (
|
||||
_config "erupe-ce/config"
|
||||
"erupe-ce/utils/logger"
|
||||
"regexp"
|
||||
|
||||
"github.com/bwmarrin/discordgo"
|
||||
@@ -38,21 +39,20 @@ var Commands = []*discordgo.ApplicationCommand{
|
||||
type DiscordBot struct {
|
||||
Session *discordgo.Session
|
||||
config *_config.Config
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
MainGuild *discordgo.Guild
|
||||
RelayChannel *discordgo.Channel
|
||||
}
|
||||
|
||||
type Options struct {
|
||||
Config *_config.Config
|
||||
Logger *zap.Logger
|
||||
}
|
||||
|
||||
func NewDiscordBot(options Options) (discordBot *DiscordBot, err error) {
|
||||
session, err := discordgo.New("Bot " + options.Config.Discord.BotToken)
|
||||
|
||||
discordLogger := logger.Get().Named("discord")
|
||||
if err != nil {
|
||||
options.Logger.Fatal("Discord failed", zap.Error(err))
|
||||
discordLogger.Fatal("Discord failed", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -63,13 +63,13 @@ func NewDiscordBot(options Options) (discordBot *DiscordBot, err error) {
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
options.Logger.Fatal("Discord failed to create relayChannel", zap.Error(err))
|
||||
discordLogger.Fatal("Discord failed to create relayChannel", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
discordBot = &DiscordBot{
|
||||
config: options.Config,
|
||||
logger: options.Logger,
|
||||
logger: discordLogger,
|
||||
Session: session,
|
||||
RelayChannel: relayChannel,
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
|
||||
_config "erupe-ce/config"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/utils/logger"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"go.uber.org/zap"
|
||||
@@ -18,7 +19,7 @@ import (
|
||||
// Server is a MHF entrance server.
|
||||
type Server struct {
|
||||
sync.Mutex
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
erupeConfig *_config.Config
|
||||
db *sqlx.DB
|
||||
listener net.Listener
|
||||
@@ -27,7 +28,7 @@ type Server struct {
|
||||
|
||||
// Config struct allows configuring the server.
|
||||
type Config struct {
|
||||
Logger *zap.Logger
|
||||
Logger logger.Logger
|
||||
DB *sqlx.DB
|
||||
ErupeConfig *_config.Config
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package signserver
|
||||
import (
|
||||
"database/sql"
|
||||
"encoding/hex"
|
||||
"erupe-ce/utils/logger"
|
||||
"erupe-ce/utils/stringsupport"
|
||||
"fmt"
|
||||
"net"
|
||||
@@ -28,7 +29,7 @@ const (
|
||||
// Session holds state for the sign server connection.
|
||||
type Session struct {
|
||||
sync.Mutex
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
server *Server
|
||||
rawConn net.Conn
|
||||
cryptConn *network.CryptConn
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
_config "erupe-ce/config"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/utils/logger"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"go.uber.org/zap"
|
||||
@@ -15,7 +16,6 @@ import (
|
||||
|
||||
// Config struct allows configuring the server.
|
||||
type Config struct {
|
||||
Logger *zap.Logger
|
||||
DB *sqlx.DB
|
||||
ErupeConfig *_config.Config
|
||||
}
|
||||
@@ -23,7 +23,7 @@ type Config struct {
|
||||
// Server is a MHF sign server.
|
||||
type Server struct {
|
||||
sync.Mutex
|
||||
logger *zap.Logger
|
||||
logger logger.Logger
|
||||
erupeConfig *_config.Config
|
||||
sessions map[int]*Session
|
||||
db *sqlx.DB
|
||||
@@ -34,7 +34,7 @@ type Server struct {
|
||||
// NewServer creates a new Server type.
|
||||
func NewServer(config *Config) *Server {
|
||||
s := &Server{
|
||||
logger: config.Logger,
|
||||
logger: logger.Get().Named("sign"),
|
||||
erupeConfig: config.ErupeConfig,
|
||||
db: config.DB,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user