goProject/.svn/pristine/a6/a60314806bae5b8a198e029cc0fc42e89d4ecd0d.svn-base

73 lines
1.3 KiB
Plaintext
Raw Normal View History

2025-01-06 16:21:36 +08:00
package impl_es
import "sync"
const (
// 批量保存的消息数量
con_MAX_NUMBER_OF_MESSAGE = 20
)
// logCache
// @description: 日志缓存
type logCache struct {
logCacheList []*EsLogModel // logCacheList 日志缓存对象
logCacheMutex sync.RWMutex // logCacheMutex 锁
}
// newlogCache
// @description: 构造日志缓存
// parameter:
// return:
// @*logCache:
func newlogCache() *logCache {
m := &logCache{
logCacheList: make([]*EsLogModel, 0, 256),
logCacheMutex: sync.RWMutex{},
}
return m
}
// 写入在线日志
// 参数:
// 日志信息对象
// 返回值:
// 无
func (c *logCache) addCacheLog(logObj *EsLogModel) {
c.logCacheMutex.Lock()
defer c.logCacheMutex.Unlock()
c.logCacheList = append(c.logCacheList, logObj)
}
// 获取日志数量
// 参数:
// 无
// 返回值:
// 缓存中的日志数量
func (c *logCache) getCacheLogCount() int {
c.logCacheMutex.RLock()
defer c.logCacheMutex.RUnlock()
return len(c.logCacheList)
}
// 获取缓存中的日志
// 参数:
// 数量
// 返回值:
// 日志列表对象
func (c *logCache) getCacheLog(logCount int) (logList []*EsLogModel) {
if logCount > con_MAX_NUMBER_OF_MESSAGE {
logCount = con_MAX_NUMBER_OF_MESSAGE
}
c.logCacheMutex.Lock()
defer c.logCacheMutex.Unlock()
logList = c.logCacheList[:logCount]
c.logCacheList = c.logCacheList[logCount:]
return
}