Sus*_*lor 2 logging stdout go output
写入stdout或记录时,如何确保几个goroutine
的输出不会弄乱输出?
例如,确保输出是这样的
Routine 1 found 1235 entries
Routine 3 found 999 entries
Routine 2 found 24 entries
Run Code Online (Sandbox Code Playgroud)
而不是这样的
Routine 1 fouRoutine 3 found 999 entries
nd 1235 entriRoutine 2 found 24 entries
es
Run Code Online (Sandbox Code Playgroud)
我的意思是一个goroutine的输出不是与另一个同时写的
即是否有一个库或标准方法来获取输出周围的信号?
使用该log包进行日志记录.来自log.Logger:
Logger表示一个活动的日志记录对象,它为io.Writer生成输出行.每个日志记录操作只对Writer的Write方法进行一次调用.Logger可以同时使用多个goroutine; 它保证序列化对Writer的访问.
对于一个以上的goroutine,使用该fmt包装通常是不安全的.
如果需要考虑时间(锁定的同步),请在日志语句前加上go:
go log.Println("some log")
Run Code Online (Sandbox Code Playgroud)
但请注意,日志输出可能(最肯定)延迟.
| 归档时间: |
|
| 查看次数: |
634 次 |
| 最近记录: |