du_1993 2014-06-11 03:25
浏览 22
已采纳

为什么fmt.Println在Google App Engine中不起作用

I built a simple web app using google app engine and golang. in code below, I use fmt.Println twice to print out somehting for debugging purpose. I have no problem running the app. everything works except nothing print out on the terminal.

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)
}
  • 写回答

2条回答 默认 最新

  • doulong2782 2014-06-11 08:33
    关注

    In the real appengine enviroment you can't se anything output to stdout.
    Appengine context give you away to log (that you can check in you appengine admin's page and in console playground).

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

    Read more: https://developers.google.com/appengine/docs/go/reference#Context

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题