当前位置:  开发笔记 > 编程语言 > 正文

Go:服务器启动时记录

如何解决《Go:服务器启动时记录》经验,为你挑选了2个好方法。

我从Go开发开始.http服务器启动时是否有任何方法可以打印?例如"Server is started at port 8080"

在Node(使用Express)中,它会像:

app.listen(8080, function() { console.log('Server started at port 8080') });

这是我的代码:

func main() {
    http.HandleFunc("/", MyHandler)
    http.ListenAndServe(":8080", nil)
}

谢谢.



1> Not_a_Golfer..:

ListenAndServe由于它阻止并且永不返回,因此您无法打印日志消息,因此基本上您有两个主要选项:

    打印"在端口上启动服务器...."就是这样 - 但是如果ListenAndServe无法启动它会返回错误,所以除非因此而打印出一些错误或恐慌,否则您可以假设服务器已启动.

    ListenAndServe在一个单独的goroutine中调用,并确保没有返回错误并打印"服务器启动..."等.

我个人更喜欢第一种方法.



2> lnmx..:

使用Go的日志包:

package main

import (
    "net/http"
    "log"
)

func main() {
    addr := ":8080"
    http.HandleFunc("/", MyHandler)
    log.Println("listen on", addr)
    log.Fatal( http.ListenAndServe(addr, nil) )
}

http.ListenAndServe打开服务器端口,永远阻止等待客户端.如果无法打开端口,则log.Fatal呼叫将报告问题并退出程序.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有