1 kevin8096 2015-09-17 14:30:58 +08:00 请问用的什么编辑器 |
2 jander OP golang 用 sublime text + gocode, 以及 gosublime 插件。 |
![]() | 4 yy77 2015-09-17 15:18:09 +08:00 没人提 LiteIDE 么? |
![]() | 5 0987363 2015-09-17 15:21:57 +08:00 看上去跟 lumber 有点像。 |
6 jander OP @0987363 刚看了一下,是挺像。 不像的地方: Golog 内置了全局 logger 对象, 不用每次都要创建 logger 对象。比如说: 在 `test1.go`里可以直接用:`logger.Debug ("....")`, 在其他.go 文件中也一样的用,不用重复创建 logger. logger 对象在 func main () 设置,然后全局有效。 |
![]() | 7 0987363 2015-09-18 09:27:46 +08:00 @jander lumber 貌似也是全局吧,另外这样多 goroutine 写日志我遇到过取得的时间错乱, 然后我改成了单线程写日志 |
8 jander OP @0987363 lumber ,需要创建的,比如说要 console,file 两种日志,要这样: var logger = Mlog (consoleLog, fileLog ) 另外, Golog 的 example 是多个 goroutine 写日志的例子,你可以跑一下,试试,不会乱。 |
![]() | 9 0987363 2015-09-18 14:47:15 +08:00 |
10 jander OP @0987363 想象一下,你要开发一个库,需要 log,于是你创建了一个 loger 对象; 然后你又要开发一个库,需要 log,于是你又创建了一个 loger 对象; 然后,你写 main.go 使用你的 pkgs, 很凌乱是吧; 改进一下,你可以专门写一个库,创建一个 logger ,然后你开发的 pkg 都使用它. 不管怎么弄,都没有这样好: //test1.go: import ( "github.com/jander/golog/logger" ) func test2 (){ logger.Debug ("test") } //test2.go: import ( "github.com/jander/golog/logger" ) func test2 (){ logger.Debug ("test2") } |
![]() | 11 0987363 2015-09-18 17:19:59 +08:00 好吧,你这样当然可以, 但要传点参数就没法了,比如输出改文件等。 |