GOでGoogleAppEngineとコンソールのどちらでも動くようなプログラムを作りたいんだけど

GoogleAppEngineとコンソールのどちらでも動くようなコードでプログラムを作りたいんだけど,困った問題が。

GoogleAppEngineで動かしている時にコンソール出力をやろうと思うと,appengineパッケージが提供するライブラリを使わないといけない。
(fmt.Printlnとかでは出力されない)

つまり

func Output(w http.ResponseWriter, r *http.Request) {
    appengine.NewContext(r).Infof("Hello!")
}

こんな感じにしないとコンソールに出力できない…

GoogleAppEngineが提供するライブラリを使うので,このコードをそのままにコンソールアプリを作ろうとするとビルドエラーになる。
エラーの理由は当然GOROOTにもGOPATHにもappengineなんて無いよ,だ。

GOPATHの方にGoogleAppEngineのライブラリのリンクを作ろうかと思ったんだけど,そういうの公式には認められないので…辞める。
(GOPATHはgo getとかでソースからしっかりインストールしていくものらしい…)



そんなこんなでラッパーでも書くかな〜的な感じになりそうです。

追記

公式ブログの方にHybrid stand-alone/App Engine appsという記事がありました。

読んでみると,スタンドアロンでサーバー用コードとGoogleAppEngine用コードの共存はBuild Constraintsを使えばできると書いてあります。