golang环境下的日志记录器-系列之二
2017-07-18 10:35
465 查看
本节工具类对loggor进行了异步封装,优化了日志输出时的线程并发,在高并发的场合适用,但会增加CPU负荷及数据落地时序有一定影响,使用接口无缝兼容loggor工具类
asyncLoggor.go
asyncLoggor.go
//@description 异步日志器,将同步日志器封装为异步 //@author chenbintao //@data 2017-06-20 09:31 初稿 // 2017-06-30 11:31 调试 package loggor type AsyncLogger struct { logger *Logger } func (this *AsyncLogger) init() *AsyncLogger { if nil == this.logger { this.logger = &Logger{} } return this } func (this *AsyncLogger) Sync(logger *Logger) *AsyncLogger { this.logger = logger return this } func (this *AsyncLogger) SetDebug(is_debug bool) { this.init() IS_DEBUG = is_debug this.logger.SetDebug(is_debug) } func (this *AsyncLogger) SetType(tp uint) { this.init() this.logger.SetType(tp) } func (this *AsyncLogger) SetRollingFile(dir, _file string, maxn int32, maxs int64, _u int64) { this.init() this.logger.SetRollingFile(dir, _file, maxn, maxs, _u) } func (this *AsyncLogger) SetRollingDaily(dir, _file string) { this.init() this.logger.SetRollingDaily(dir, _file) } func (this *AsyncLogger) SetRollingNormal(dir, _file string) { this.init() this.logger.SetRollingNormal(dir, _file) } func (this *AsyncLogger) Close() { if nil != this.logger { this.logger.Close() } } func (this *AsyncLogger) Println(a ...interface{}) { if nil != this.logger { go this.logger.Println(a...) } } func (this *AsyncLogger) Printf(format string, a ...interface{}) { if nil != this.logger { go this.logger.Printf(format, a...) } }
相关文章推荐
- golang环境下的日志记录器-系列之一
- golang环境下的日志记录器-系列之三
- Windows环境下Android Studio系列—日志调试
- Linux学习系列之二——编程环境配置
- Provisioning Services 7.6 入门到精通系列之二:基础架构环境
- iBatisnet系列(二) 配置运行环境和日志处理
- Provisioning Services 7.6 入门到精通系列之二:基础架构环境
- LAMP环境搭建系列之二:编译安装Mysql5.6.38
- 大数据学习系列之二 ----- HBase环境搭建(单机)
- 活动目录系列之二:单域环境的实现(单站点)
- iBatisnet系列(二) 配置运行环境和日志处理
- logback系列之二:输出日志到文件
- Windows Server入门系列之二 利用VMware Workstation构建实验环境1 推荐
- Oracle11g R2学习系列 之二基本概念和环境介绍
- 大数据学习系列之二 ----- HBase环境搭建(单机)
- 活动目录系列之二:单域环境的实现(单站点)
- 活动目录系列之二:单域环境的实现(单站点)
- 深入理解Tomcat系列之二:源码调试环境搭建
- iBatisnet系列(二) 配置运行环境和日志处理
- 深入理解Tomcat系列之二:源码调试环境搭建(转)