为什么fmt.Println不能在Google应用引擎中运行

qin*_*126 7 google-app-engine go

我使用谷歌应用引擎和golang构建了一个简单的Web应用程序.在下面的代码中,我使用fmt.Println两次打印出一些用于调试目的.我没有运行应用程序的问题.一切正常,除了终端上没有打印出来.

func HomeHandler(w http.ResponseWriter, r *http.Request) {
    c := appengine.NewContext(r)
    q := datastore.NewQuery("Post").Ancestor(goblogKey(c)).Order("-CreatedOn").Limit(10)

    //posts := make([]entity.Post, 0, 10)
    var posts []entity.Post

    if _, err := q.GetAll(c, &posts); err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    fmt.Println(string(len(posts)) + "...........")

    postList := []dto.Post{}

    for _, val := range posts {
        newpost := dto.Post{
            Post:     val,
            BodyHTML: template.HTML(val.Body),
        }

        fmt.Println(val.Title)

        postList = append(postList, newpost)
    }

    page := dto.PageData{Title: "Home", Posts: postList}
    templates.ExecuteTemplate(w, "index", page)
}
Run Code Online (Sandbox Code Playgroud)

nvc*_*nvn 10

在真正的appengine环境中,你不能输出任何输出到stdout.
Appengine上下文可以让您远程登录(您可以在登录管理页面和控制台操场中查看).

func HomeHandler(w http.ResponseWriter, r *http.Request) {
    c := appengine.NewContext(r)
    c.Debugf("The message: %s", "foo")
    ...
Run Code Online (Sandbox Code Playgroud)

阅读更多:https://developers.google.com/appengine/docs/go/reference#Context