Q.AWS Amplifyでローカル実行で簡単にログを確認したいのですが?
- AWS Amplify (4.27.3)
- Golangで作ったLambda function
amplify mock function <FunctionName>
でローカル実行
このときに log.Println()
で簡単にコンソールにログ出力して値を確認したい。
A.できなそう
やりかたわからず。 amplifyコマンドのコードを変更すればできそうだけど、、、わたしは以下のworkaroundで対応しました。
// import "os"
// import "log"
// import "io"
logFile, err := os.OpenFile("/tmp/out.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0755)
if err != nil {
log.Printf("Cannot open logFile: %v", err)
}
defer logFile.Close()
log.SetOutput(io.MultiWriter(logFile, os.Stderr))
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
クラウドに載ったときのことも考えて、MultiWriterで両方に出力してます。
なおぱっとamplify(cli)のコードを見た限りmainバイナリの差し替えを想定していなそうだったので、delveでのデバッグもできなそう。
いいやりかたがあれば誰か教えてください。