golang中fmt vs log
paladinosment · · 4395 次点击 · · 开始浏览真正的项目中一定要使用log或者封装更高层的自定义log,不要直接使用fmt,原因有2:
(1)最重要的一点,log包是并发goroutine安全的,而fmt不是,这点特别重要,可以看如下的例子
func main() {
log.Printf(" %s", "1.1.1.1002")
log.Printf(" %s", "aaa")
sigTerm := syscall.Signal(15)
log.Println(reflect.TypeOf(sigTerm))
fmt.Println("HAHAHAHAHAHAHAHAHAHA")
fmt.Println("ahahahaha")}
结果会出现:
2015年01月13日 02:12:04 1.1.1.1002
HAHAHAHAHAHAHAHAHAHA
2015年01月13日 02:12:04 aaa
ahahahaha
2015年01月13日 02:12:04 syscall.Signal
2015年01月13日 02:13:17 1.1.1.1002
HAHAHAHAHAHAHAHAHAHA
2015年01月13日 02:13:17 aaa
2015年01月13日 02:13:17 syscall.Signal
ahahahaha
HAHAHAHAHAHAHAHAHAHA
2015年01月13日 02:13:35 1.1.1.1002
ahahahaha
2015年01月13日 02:13:35 aaa
2015年01月13日 02:13:35 syscall.Signal
各种
如果要保证并发安全,日志请用log包
(2)log包会打印时间信息,fmt不会
版权声明:本文为博主原创文章,未经博主允许不得转载。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
真正的项目中一定要使用log或者封装更高层的自定义log,不要直接使用fmt,原因有2:
(1)最重要的一点,log包是并发goroutine安全的,而fmt不是,这点特别重要,可以看如下的例子
func main() {
log.Printf(" %s", "1.1.1.1002")
log.Printf(" %s", "aaa")
sigTerm := syscall.Signal(15)
log.Println(reflect.TypeOf(sigTerm))
fmt.Println("HAHAHAHAHAHAHAHAHAHA")
fmt.Println("ahahahaha")}
结果会出现:
2015年01月13日 02:12:04 1.1.1.1002
HAHAHAHAHAHAHAHAHAHA
2015年01月13日 02:12:04 aaa
ahahahaha
2015年01月13日 02:12:04 syscall.Signal
2015年01月13日 02:13:17 1.1.1.1002
HAHAHAHAHAHAHAHAHAHA
2015年01月13日 02:13:17 aaa
2015年01月13日 02:13:17 syscall.Signal
ahahahaha
HAHAHAHAHAHAHAHAHAHA
2015年01月13日 02:13:35 1.1.1.1002
ahahahaha
2015年01月13日 02:13:35 aaa
2015年01月13日 02:13:35 syscall.Signal
各种
如果要保证并发安全,日志请用log包
(2)log包会打印时间信息,fmt不会
版权声明:本文为博主原创文章,未经博主允许不得转载。