タグ

golangとlogに関するmytechnoteのブックマーク (3)

  • Goエラーハンドリング戦略

    Goのエラーハンドリングが採ったスタイル 多値返し 直積(関数の返値とエラーを両方返す) try-finallyをdeferという機構でカバー panicはプロセスを落とすためのもの Goはこの戦略でエラーハンドリングを行うとしましたので、「多値はなぜタプルじゃないんだ?」、「直和(返値orエラー)で十分じゃ?」「panic-recoverでtry-catchできそう?」などいう様な他の処理系の風習を持ち込むことは意味がありません。そしてそれらの提案の多くはすでに検討されリジェクトされてきた経緯があります。 「try組み込み関数」プロポーザルなんかも検討されマージ直前くらいまで進んだこともありますが、「Goのエラーハンドリング」にとって一長一短がありました。その欠点課題は解決できずに最終的にリジェクトされました。 「多値返し」は実にCPUフレンドリーな機構で、C言語の関数呼び出し規約にちょ

    Goエラーハンドリング戦略
  • Golang で Let's Encrypt の証明書を発行して使用する - Qiita

    Golang で ACME プロトコルがサポートされてたみたいなので試してみた。 Document のとおりなんだけれど、以下のコードだけで証明書を発行してListenまでしてくれる。 golang.org/x/crypto/acme/autocert package main import ( "fmt" "log" "net/http" "golang.org/x/crypto/acme/autocert" ) func main() { mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, TLS user! Your config: %+v", r.TLS) }) log.Fatal(http.Serve(

    Golang で Let's Encrypt の証明書を発行して使用する - Qiita
  • STDIN経由で入力を受け取って1秒あたりのスループットを取れるpersecというのを書いた - その手の平は尻もつかめるさ

    表題のやつです.便利っぽかったのと書きたかったという理由からgoで書いています. 例えばアクセスログのようなものがあった時,「1秒間に何行ログに書き込まれているか」が分かれば秒間のアクセス数を求めることが可能となります.これはそういうことをする為のツールとなります. persecを一言で言うと,「1秒間に何行やってくるか」をカウントするコマンドです. $ tail -F nankano.log | persec という風に使ってやると,persecはteeの様にtail -Fの内容をそのまま出力しつつ,行数をカウントして一定周期ごとにそのスループットを出力します.末尾に雑に噛ませておくとスループットが取れる. デフォルトだと,persecは60秒ごとのインターバルでスループットをSTDOUTに吐き出します.この場合は60秒間分の行数をカウントしておいて,それを60で割ったものを1秒間あたり

    STDIN経由で入力を受け取って1秒あたりのスループットを取れるpersecというのを書いた - その手の平は尻もつかめるさ
  • 1