mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
Merge branch 'master' of https://github.com/duanhf2012/origin
This commit is contained in:
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
|||||||
module github.com/duanhf2012/origin
|
module github.com/duanhf2012/origin/v2
|
||||||
|
|
||||||
go 1.21
|
go 1.21
|
||||||
|
|
||||||
|
|||||||
69
log/log.go
69
log/log.go
@@ -22,7 +22,10 @@ var LogSize int64
|
|||||||
var LogChannelCap int
|
var LogChannelCap int
|
||||||
var LogPath string
|
var LogPath string
|
||||||
var LogLevel slog.Level = LevelTrace
|
var LogLevel slog.Level = LevelTrace
|
||||||
|
|
||||||
|
|
||||||
var gLogger, _ = NewTextLogger(LevelDebug, "", "",true,LogChannelCap)
|
var gLogger, _ = NewTextLogger(LevelDebug, "", "",true,LogChannelCap)
|
||||||
|
var isSetLogger bool
|
||||||
var memPool = bytespool.NewMemAreaPool()
|
var memPool = bytespool.NewMemAreaPool()
|
||||||
|
|
||||||
// levels
|
// levels
|
||||||
@@ -37,6 +40,21 @@ const (
|
|||||||
LevelFatal = slog.Level(20)
|
LevelFatal = slog.Level(20)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ILogger interface {
|
||||||
|
Trace(msg string, args ...any)
|
||||||
|
Debug(msg string, args ...any)
|
||||||
|
Info(msg string, args ...any)
|
||||||
|
Warning(msg string, args ...any)
|
||||||
|
Error(msg string, args ...any)
|
||||||
|
Stack(msg string, args ...any)
|
||||||
|
Dump(msg string, args ...any)
|
||||||
|
Fatal(msg string, args ...any)
|
||||||
|
|
||||||
|
DoSPrintf(level slog.Level,a []interface{})
|
||||||
|
FormatHeader(buf *Buffer,level slog.Level,calldepth int)
|
||||||
|
Close()
|
||||||
|
}
|
||||||
|
|
||||||
type Logger struct {
|
type Logger struct {
|
||||||
Slogger *slog.Logger
|
Slogger *slog.Logger
|
||||||
|
|
||||||
@@ -47,7 +65,6 @@ type Logger struct {
|
|||||||
|
|
||||||
type IoWriter struct {
|
type IoWriter struct {
|
||||||
outFile io.Writer // destination for output
|
outFile io.Writer // destination for output
|
||||||
outConsole io.Writer //os.Stdout
|
|
||||||
writeBytes int64
|
writeBytes int64
|
||||||
logChannel chan []byte
|
logChannel chan []byte
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
@@ -122,8 +139,8 @@ func (iw *IoWriter) Write(p []byte) (n int, err error){
|
|||||||
func (iw *IoWriter) writeIo(p []byte) (n int, err error){
|
func (iw *IoWriter) writeIo(p []byte) (n int, err error){
|
||||||
n,err = iw.writeFile(p)
|
n,err = iw.writeFile(p)
|
||||||
|
|
||||||
if iw.outConsole != nil {
|
if OpenConsole {
|
||||||
n,err = iw.outConsole.Write(p)
|
n,err = os.Stdout.Write(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -217,17 +234,12 @@ func (iw *IoWriter) swichFile() error{
|
|||||||
iw.fileDay = now.Day()
|
iw.fileDay = now.Day()
|
||||||
iw.fileCreateTime = now.Unix()
|
iw.fileCreateTime = now.Unix()
|
||||||
atomic.StoreInt64(&iw.writeBytes,0)
|
atomic.StoreInt64(&iw.writeBytes,0)
|
||||||
if OpenConsole == true {
|
|
||||||
iw.outConsole = os.Stdout
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
iw.outConsole = os.Stdout
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (*Logger,error){
|
func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (ILogger,error){
|
||||||
var logger Logger
|
var logger Logger
|
||||||
logger.ioWriter.filePath = pathName
|
logger.ioWriter.filePath = pathName
|
||||||
logger.ioWriter.fileprefix = filePrefix
|
logger.ioWriter.fileprefix = filePrefix
|
||||||
@@ -242,7 +254,7 @@ func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource
|
|||||||
return &logger,nil
|
return &logger,nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewJsonLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (*Logger,error){
|
func NewJsonLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (ILogger,error){
|
||||||
var logger Logger
|
var logger Logger
|
||||||
logger.ioWriter.filePath = pathName
|
logger.ioWriter.filePath = pathName
|
||||||
logger.ioWriter.fileprefix = filePrefix
|
logger.ioWriter.fileprefix = filePrefix
|
||||||
@@ -296,13 +308,18 @@ func (logger *Logger) Fatal(msg string, args ...any) {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// It's dangerous to call the method on logging
|
// It's non-thread-safe
|
||||||
func Export(logger *Logger) {
|
func SetLogger(logger ILogger) {
|
||||||
if logger != nil {
|
if logger != nil && isSetLogger == false {
|
||||||
gLogger = logger
|
gLogger = logger
|
||||||
|
isSetLogger = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetLogger() ILogger{
|
||||||
|
return gLogger
|
||||||
|
}
|
||||||
|
|
||||||
func Trace(msg string, args ...any){
|
func Trace(msg string, args ...any){
|
||||||
gLogger.Trace(msg, args...)
|
gLogger.Trace(msg, args...)
|
||||||
}
|
}
|
||||||
@@ -415,7 +432,7 @@ func Group(key string, args ...any) slog.Attr {
|
|||||||
return slog.Group(key, args...)
|
return slog.Group(key, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) doSPrintf(level slog.Level,a []interface{}) {
|
func (logger *Logger) DoSPrintf(level slog.Level,a []interface{}) {
|
||||||
if logger.Slogger.Enabled(context.Background(),level) == false{
|
if logger.Slogger.Enabled(context.Background(),level) == false{
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -425,7 +442,7 @@ func (logger *Logger) doSPrintf(level slog.Level,a []interface{}) {
|
|||||||
|
|
||||||
logger.sBuff.Reset()
|
logger.sBuff.Reset()
|
||||||
|
|
||||||
logger.formatHeader(&logger.sBuff,level,3)
|
logger.FormatHeader(&logger.sBuff,level,3)
|
||||||
|
|
||||||
for _,s := range a {
|
for _,s := range a {
|
||||||
logger.sBuff.AppendString(slog.AnyValue(s).String())
|
logger.sBuff.AppendString(slog.AnyValue(s).String())
|
||||||
@@ -435,46 +452,46 @@ func (logger *Logger) doSPrintf(level slog.Level,a []interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) STrace(a ...interface{}) {
|
func (logger *Logger) STrace(a ...interface{}) {
|
||||||
logger.doSPrintf(LevelTrace,a)
|
logger.DoSPrintf(LevelTrace,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) SDebug(a ...interface{}) {
|
func (logger *Logger) SDebug(a ...interface{}) {
|
||||||
logger.doSPrintf(LevelDebug,a)
|
logger.DoSPrintf(LevelDebug,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) SInfo(a ...interface{}) {
|
func (logger *Logger) SInfo(a ...interface{}) {
|
||||||
logger.doSPrintf(LevelInfo,a)
|
logger.DoSPrintf(LevelInfo,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) SWarning(a ...interface{}) {
|
func (logger *Logger) SWarning(a ...interface{}) {
|
||||||
logger.doSPrintf(LevelWarning,a)
|
logger.DoSPrintf(LevelWarning,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) SError(a ...interface{}) {
|
func (logger *Logger) SError(a ...interface{}) {
|
||||||
logger.doSPrintf(LevelError,a)
|
logger.DoSPrintf(LevelError,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func STrace(a ...interface{}) {
|
func STrace(a ...interface{}) {
|
||||||
gLogger.doSPrintf(LevelTrace,a)
|
gLogger.DoSPrintf(LevelTrace,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SDebug(a ...interface{}) {
|
func SDebug(a ...interface{}) {
|
||||||
gLogger.doSPrintf(LevelDebug,a)
|
gLogger.DoSPrintf(LevelDebug,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SInfo(a ...interface{}) {
|
func SInfo(a ...interface{}) {
|
||||||
gLogger.doSPrintf(LevelInfo,a)
|
gLogger.DoSPrintf(LevelInfo,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SWarning(a ...interface{}) {
|
func SWarning(a ...interface{}) {
|
||||||
gLogger.doSPrintf(LevelWarning,a)
|
gLogger.DoSPrintf(LevelWarning,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SError(a ...interface{}) {
|
func SError(a ...interface{}) {
|
||||||
gLogger.doSPrintf(LevelError,a)
|
gLogger.DoSPrintf(LevelError,a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (logger *Logger) formatHeader(buf *Buffer,level slog.Level,calldepth int) {
|
func (logger *Logger) FormatHeader(buf *Buffer,level slog.Level,calldepth int) {
|
||||||
t := time.Now()
|
t := time.Now()
|
||||||
var file string
|
var file string
|
||||||
var line int
|
var line int
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ func initLog() error {
|
|||||||
fmt.Printf("cannot create log file!\n")
|
fmt.Printf("cannot create log file!\n")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Export(logger)
|
log.SetLogger(logger)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ func (mp *MongoPersist) removeRankData(rankId uint64,keys []uint64) bool {
|
|||||||
|
|
||||||
func (mp *MongoPersist) upsertToDB(collectName string,rankData *RankData) error{
|
func (mp *MongoPersist) upsertToDB(collectName string,rankData *RankData) error{
|
||||||
condition := bson.D{{"_id", rankData.Key}}
|
condition := bson.D{{"_id", rankData.Key}}
|
||||||
upsert := bson.M{"_id":rankData.Key,"RefreshTime": rankData.refreshTimestamp, "SortData": rankData.SortData, "Data": rankData.Data,"ExData":rankData.ExData}
|
upsert := bson.M{"_id":rankData.Key,"RefreshTime": rankData.RefreshTimestamp, "SortData": rankData.SortData, "Data": rankData.Data,"ExData":rankData.ExData}
|
||||||
update := bson.M{"$set": upsert}
|
update := bson.M{"$set": upsert}
|
||||||
|
|
||||||
s := mp.mongo.TakeSession()
|
s := mp.mongo.TakeSession()
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ type RankData struct {
|
|||||||
Data []byte
|
Data []byte
|
||||||
ExData []int64
|
ExData []int64
|
||||||
|
|
||||||
refreshTimestamp int64 //刷新时间
|
RefreshTimestamp int64 //刷新时间
|
||||||
//bRelease bool
|
//bRelease bool
|
||||||
ref bool
|
ref bool
|
||||||
compareFunc func(other skip.Comparator) int
|
compareFunc func(other skip.Comparator) int
|
||||||
@@ -39,7 +39,7 @@ func NewRankData(isDec bool, data *rpc.RankData,refreshTimestamp int64) *RankDat
|
|||||||
ret.ExData = append(ret.ExData,d.InitValue+d.IncreaseValue)
|
ret.ExData = append(ret.ExData,d.InitValue+d.IncreaseValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.refreshTimestamp = refreshTimestamp
|
ret.RefreshTimestamp = refreshTimestamp
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ func (rs *RankSkip) UpsetRank(upsetData *rpc.RankData, refreshTimestamp int64, f
|
|||||||
//找到的情况对比排名数据是否有变化,无变化进行data更新,有变化则进行删除更新
|
//找到的情况对比排名数据是否有变化,无变化进行data更新,有变化则进行删除更新
|
||||||
if compareIsEqual(rankNode.SortData, upsetData.SortData) {
|
if compareIsEqual(rankNode.SortData, upsetData.SortData) {
|
||||||
rankNode.Data = upsetData.GetData()
|
rankNode.Data = upsetData.GetData()
|
||||||
rankNode.refreshTimestamp = refreshTimestamp
|
rankNode.RefreshTimestamp = refreshTimestamp
|
||||||
|
|
||||||
if fromLoad == false {
|
if fromLoad == false {
|
||||||
rs.rankModule.OnChangeRankData(rs, rankNode)
|
rs.rankModule.OnChangeRankData(rs, rankNode)
|
||||||
|
|||||||
Reference in New Issue
Block a user