utd

package
v0.0.0-...-d73eb14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2019 License: GPL-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UTD_VERSION                = "1.0.0"          // Ghost库版本号
	UTD_LOG_LEVEL              = ELL_Debug        // 默认日志等级
	UTD_LOG_FILE_SUFFIX        = "log"            // 默认日志文件后缀名
	UTD_LOG_ROTATE_MAX         = 3                // 默认日志文件轮换数量
	UTD_LOG_ROTATE_SIZE        = 20 * 1024 * 1024 // 默认日志文件轮换size
	UTD_LOG_CSIZE              = 100              // 默认日志消息通道缓存大小
	UTD_LOG_DTM_ONCE           = 50               // 逻辑日志每写多少条,写一次[DTM]日期记录
	UTD_RANDOM_WORKERID_BITS   = uint64(10)
	UTD_RANDOM_SEQUENCE_BITS   = uint64(12)
	UTD_RANDOM_WORKERID_SHIFT  = UTD_RANDOM_SEQUENCE_BITS
	UTD_RANDOM_TIMESTAMP_SHIFT = UTD_RANDOM_SEQUENCE_BITS + UTD_RANDOM_WORKERID_BITS
	UTD_RANDOM_SEQUENCE_MASK   = int64(-1) ^ (int64(-1) << UTD_RANDOM_SEQUENCE_BITS)
	UTD_RANDOM_TWEPOCH         = int64(1288834974288) // ( 2012-10-28 16:23:42 UTC ).UnixNano() >> 20
	UTD_RANDOM_CSIZE           = 100
)

----------------------------------------------------------------------------- =====================================常量定义================================ -----------------------------------------------------------------------------

Variables

View Source
var (
	Usys IUsyser // 标准系统接口
	Ucom IUcomer // 标准通用接口
	Ufil IUfiler // 标准文件接口
	Ucod IUcoder // 标准编码接口
	Ulog IUloger // 标准日志接口
)
View Source
var (
	UTD_LOG_MSG_LV_PREFIXS = [ELL_Maxed]string{"[TRC]", "[DBG]", "[INF]", "[WRN]", "[ERR]", "[FAIL]"}
)

Functions

This section is empty.

Types

type ECodeCompressPrice

type ECodeCompressPrice int //

编码-压缩性能

const (
	ECPP_BESTSPEED ECodeCompressPrice = iota // 最快速度
	ECPP_FAST                                // 较快
	ECPP_BESTHIGHT                           // 最高压缩比
)

type ECodeCompressType

type ECodeCompressType int //

编码-压缩类型

const (
	ECPT_GZIP  ECodeCompressType = iota //支持压缩等级
	ECPT_ZLIB                           //支持压缩等级 字典
	ECPT_FLATE                          //支持压缩等级 字典
)

type ECodeCryptType

type ECodeCryptType int //

编码-加密类型

const (
	ECYT_BASE32  ECodeCryptType = iota //base32 加密解密编码
	ECYT_BASE64                        //base64 加密解密编码
	ECYT_AES_CFB                       // CFB
	ECYT_AES_CTR                       // CTR
	ECYT_AES_OFB                       // OFB
	ECYT_AES_CBC                       // CBC 注意输入参数长度
)

type ECodeHashType

type ECodeHashType int //

编码-校验类型

const (
	ECHT_MD5 ECodeHashType = iota
	ECHT_SHA1
	ECHT_SHA256
	ECHT_SHA512
	ECHT_CRC32
	ECHT_CRC64
)

type ELogLevel

type ELogLevel int //

日志等级

const (
	ELL_Trace ELogLevel = iota
	ELL_Debug
	ELL_Infos
	ELL_Warns
	ELL_Error
	ELL_Fatal
	ELL_Maxed // 6
)

func (ELogLevel) String

func (e ELogLevel) String() string

type ELoggerStatus

type ELoggerStatus int //

日志运行状态

const (
	ELS_Initing ELoggerStatus = iota
	ELS_Running
	ELS_Exiting
	ELS_Stopped
)

type ILogMe

type ILogMe interface {
	ILoger
	WarnEnil(format string, v ...interface{}) error
	ErrorEnil(format string, v ...interface{}) error
}

type ILoger

type ILoger interface {
	// TRACE
	Trace(format string, v ...interface{})
	Tracev(v ...interface{})

	// DEBUG
	Debug(format string, v ...interface{})
	Debugv(v ...interface{})

	// INFO
	Info(format string, v ...interface{})
	Infov(v ...interface{})

	// WARN
	Warn(format string, v ...interface{})
	Warnv(v ...interface{})

	// ERROR
	Error(format string, v ...interface{})
	Errorv(v ...interface{})
}

***************************************************************************** Copyright:cloud Author:cloudapex@126.com Version:1.0 Date:2014-10-18 Description: utd库标准日志接口 ***************************************************************************** 基础接口

type IUcoder

type IUcoder interface {

	// 序列化|反序列化 (Gob)
	GEncode(e interface{}) ([]byte, error)
	GDecode(e interface{}, b []byte) error

	// 十六进制编码解码
	HexEncode(src []byte) []byte
	HexDecode(src []byte) ([]byte, error)
	HexEncodeStr(src []byte) string
	HexDecodeStr(src string) ([]byte, error)

	// 压缩|解压缩
	EnCompress(ptype ECodeCompressType, b []byte, price ECodeCompressPrice, dict ...byte) ([]byte, error)
	DeCompress(ptype ECodeCompressType, b []byte, dict ...byte) ([]byte, error)

	// 加密|解密 (key must 32 or 64 len or use default key)
	EncryptBase(ctype ECodeCryptType, b []byte, key ...byte) ([]byte, error)
	DecryptBase(ctype ECodeCryptType, b []byte, key ...byte) ([]byte, error)

	// 加密|解密 (key must <=256 len or use default key(72))
	EncryptRC4(b []byte, key ...byte) ([]byte, error)
	DecryptRC4(b []byte, key ...byte) ([]byte, error)

	// 加密|解密 (iVector init_vector 16 len or user default iv,key must 16 or 24 or 32 len or use default key(16))
	EncryptStreamAES(ctype ECodeCryptType, b []byte, iVector []byte, key ...byte) ([]byte, error)
	DecryptStreamAES(ctype ECodeCryptType, b []byte, iVector []byte, key ...byte) ([]byte, error)

	// 哈希值校验码[string]
	HashCode(hashType ECodeHashType, b []byte) ([]byte, error)

	// 哈希值校验码[number]
	HashCrc32_IEEE(data []byte) uint32
	HashCrc32_CASTAGN(data []byte) uint32
	HashCrc32_KOOPMAN(data []byte) uint32
	HashCrc64_ISO(data []byte) uint64
	HashCrc64_ECMA(data []byte) uint64
}

type IUcomer

type IUcomer interface {

	// 可变参数组
	Args(params ...interface{}) []interface{}

	// 实例一个IUloger
	NewUlogger(setting *SLogSetting) IUloger
	// 三元运算
	UCast(condition bool, trueFun, falseFun func())                         // condition ? trueFun : falseFun
	UCall(condition bool, trueFun, falseFun func() interface{}) interface{} // condition ? trueFun : falseFun
	// 深度拷贝
	Clone(src, des interface{}) error
	// url库里面的Encode接口对时间字符串支持有问题
	UrlEncode(urlValue map[string][]string) string

	// 随机数
	RandInt(max int) int
	RandFnt() float32
	RandGid() TGUID
	RandStr(num int) string
	RandInts(max, num int) []int
	RandIntDis(max, num int) []int

	// 位运算操作
	BitHas(value uint, flags ...uint) bool
	BitSet(value uint, flags ...uint) uint
	BitDel(value uint, flags ...uint) uint

	// 检测value是否在min-max之间
	Between(value, min, max int) bool
	// 检查默认参数值
	DefvBool(defVal []bool) bool

	// 最大最小值
	UMin(n1, n2 int) int
	UMax(n1, n2 int) int
	UMinf(f1, f2 float32) float32
	UMaxf(f1, f2 float32) float32
	UMinMax(value, min, max int) int
	UMinMaxf(value, minf, maxf float32) float32

	ShouldMin(value, minVal, should int) int       // (value <= minVal) =>should
	ShouldMax(value, maxVal, should int) int       // (value >= maxVal) =>should
	ShouldStr(value, desStr, should string) string // (value == desStr) =>should

	// 转换时间段
	DurationMic(mic int) time.Duration
	DurationMil(mil int) time.Duration
	DurationSec(sec int) time.Duration

	// 时间解析/格式化[年-月-日 时:分:秒][时:分:秒 年-月-日 ][时:分:秒][年-月-日][时-分][时][年-月][年]
	TimeFormat(t time.Time) string
	TimeParsed(datum time.Time, datetime ...string) (time.Time, error)
	TimeParsedt(datum time.Time, datetime ...string) time.Time

	// 自动锁[函数式]
	AutoLock(mu *sync.Mutex, fun func())
	AutoRLock(mu *sync.RWMutex, fun func())
	AutoWLock(mu *sync.RWMutex, fun func())

	// 自动锁[组合式]
	Lock(mu *sync.Mutex) *sync.Mutex
	UnLock(lockFun *sync.Mutex)

	RLock(mu *sync.RWMutex) *sync.RWMutex
	RUnLock(rMutex *sync.RWMutex)

	WLock(mu *sync.RWMutex) *sync.RWMutex
	WUnLock(wMutex *sync.RWMutex)
}

type IUfiler

type IUfiler interface {

	// 文件或者文件夹修改时间
	TimeMod(file string) (int64, error)

	// 文件或者文件夹大小尺寸
	Sizefi(file string) (int64, error)

	// 文件或者文件夹改名
	Rename(file string, to string) error

	// 文件或者文件夹移除
	Remove(file string) error

	// 判断文件或者文件夹是否存在
	Exist(file string) bool

	// 剪切文件 注意路径是否存在
	CutTo(srcFile, desFile string) error

	// 拷贝文件 注意路径是否存在
	CopyTo(srcFile, desFile string) error

	// 获取指定目录下的所有文件名列表(不进入下一级目录搜索,支持后缀过滤)
	DirList(dirPth string, suffix string) (files []string, err error)

	// 获取指定目录及所有子目录下的所有文件名列表(支持后缀过滤)
	DirWalk(dirPth, suffix string) (files []string, err error)
}

type IUloger

type IUloger interface {

	// 继承接口
	ILoger

	// 启动
	Start()

	// 停止
	Stop()

	// 日志属性
	GetLevel() ELogLevel   // 获取日志等级
	SetLevel(lv ELogLevel) // 设置日志等级

	// 日志等级前缀
	UpdPrefix(lvPrefix [ELL_Maxed]string)

	// 日志过滤器(return true then don't logfile)
	UpdFilter(filter func(lv ELogLevel, msg string) bool)

	// FATAL
	Fatal(format string, v ...interface{})
}

完整接口

type IUsyser

type IUsyser interface {

	// 系统启动[参数: 空-不使用文件日志 nil-使用默认配置日志 cfg-自定义日志]
	Init(setting ...*SLogSetting)

	// 系统启动[适合GUI或者工具类程序 run:主执行函数]
	Exec(run func(), setting ...*SLogSetting)

	// 系统等待结束
	Wait(x ...interface{})

	// 系统信号 可添加多个
	Sign(hand func())

	// 系统退出
	Quit(delay ...time.Duration)

	// 捕获异常[usage: defer Catch(...)]
	Catch(desc string, x interface{}, bFatal ...bool) bool

	// 获取 goroutine_id
	GoId() (int, error)

	// 获取 函数调用堆栈信息
	Stack() (file string, line int, fun string)
	StackStr() string

	// 系统开始时间
	TimeStart() time.Time
	// 系统运行时间
	TimeLived() time.Duration

	// 查找系统命令
	LookCmd(cmdName string) bool
	// 执行系统命令[并且等待执行完毕]
	ExecCmd(cmd string, wait bool, arg ...string) (string, error)

	// Ping目标主机是否通畅
	Ping(ip string) error

	// 开启性能检测服务
	StartPprof(addr string)
	// 关闭性能检测服务
	StopPprof()

	// 开启一个Goroutine[异常捕捉]
	Goroutine(name string, goFun func())

	// 程序名称
	ExeName() string
	// 程序名称.exe
	ExeFullName() string
	// 程序路径全
	ExeFullPath() string
	// 程序路径不全
	ExePathName() string
	// 程序路径附加
	ExePathJoin(file string) string

	// 函数字符串名称
	FunSelfName(fun interface{}) string
	FunFullName(fun interface{}, seps ...rune) string

	// 检测日志等级
	EnLogLevel(lv ELogLevel) bool

	// 直接打印到控制台
	Print(format string, v ...interface{})

	// 带源信息的日志输出
	Trace(format string, v ...interface{})
	Debug(format string, v ...interface{})
	Info(format string, v ...interface{})
	Warn(format string, v ...interface{})
	Error(format string, v ...interface{})
	Fatal(format string, v ...interface{})
}

type LogMe

type LogMe struct {
	// contains filtered or unexported fields
}

日志自己(带堆栈)

func (*LogMe) Debug

func (l *LogMe) Debug(format string, v ...interface{})

func (*LogMe) Debugv

func (l *LogMe) Debugv(v ...interface{})

func (*LogMe) Error

func (l *LogMe) Error(format string, v ...interface{})

func (*LogMe) ErrorEnil

func (l *LogMe) ErrorEnil(format string, v ...interface{}) error

func (*LogMe) Errorv

func (l *LogMe) Errorv(v ...interface{})

func (*LogMe) Info

func (l *LogMe) Info(format string, v ...interface{})

func (*LogMe) Infov

func (l *LogMe) Infov(v ...interface{})

func (*LogMe) Init

func (l *LogMe) Init(theme string, name func() string)

func (*LogMe) Trace

func (l *LogMe) Trace(format string, v ...interface{})

func (*LogMe) Tracev

func (l *LogMe) Tracev(v ...interface{})

func (*LogMe) Warn

func (l *LogMe) Warn(format string, v ...interface{})

func (*LogMe) WarnEnil

func (l *LogMe) WarnEnil(format string, v ...interface{}) error

func (*LogMe) Warnv

func (l *LogMe) Warnv(v ...interface{})

type SLogSetting

type SLogSetting struct {
	Level      ELogLevel // 日志等级[ELL_Debug]
	DirName    string    // 输出目录[程序所在目录]
	FileName   string    // 日志文件主名[程序本身]
	FileSuffix string    // 日志文件后缀[log]
	RotateMax  int       // 日志文件轮换数量
	RotateSize int       // 日志文件轮换大小
}

日志配置

type TDurt

type TDurt = time.Duration

type TGUID

type TGUID uint64 //

GUID TYPE

func (TGUID) Hex

func (t TGUID) Hex() []byte

func (TGUID) HexStr

func (t TGUID) HexStr() string

type TJsTime

type TJsTime time.Time // Support json.Unmarshaler and json.Marshaler and fmt.Stringer

时间点(别名)

func (*TJsTime) MarshalJSON

func (t *TJsTime) MarshalJSON() ([]byte, error)

func (*TJsTime) String

func (t *TJsTime) String() string

func (*TJsTime) UnmarshalJSON

func (t *TJsTime) UnmarshalJSON(data []byte) error

type TStringArray

type TStringArray []string //

字符串数组类型

func (*TStringArray) Set

func (a *TStringArray) Set(s string) error

func (*TStringArray) String

func (a *TStringArray) String() string

type TTime

type TTime = time.Time

时间段(别名)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL