タグ

ロガーに関するi_matsuiのブックマーク (2)

  • golangの高速な構造化ログライブラリ「zap」の使い方 - Qiita

    はじめに 構造化メッセージが構築できる高速なロギングライブラリを謳っている『zap』を触ってみました。 ドキュメントがあまり充実していなくて、どんなことができるのかGodoc見ながら調査したので、その結果を自分用のメモがてら書いておこうと思います。 確認した環境とバージョン Mac OSX 10.11.6 (El Capitan) go v1.8 zap v1.0.0 zapの特徴 zapは以下のようなアプローチで高速化していると言っています。 Reflectionを使わない アロケーションしないJSONエンコーダを使用 可能な限りシリアル化のオーバーヘッドとアロケーションを避ける そして、独自のベンチマークによると、他の構造化ロギングライブラリだけでなく、標準ライブラリよりも高速に動作するそうです。 確かにReadMeのパフォーマンスを見ると圧倒的に高速で低アロケーションを実現しています

    golangの高速な構造化ログライブラリ「zap」の使い方 - Qiita
  • Goエラーハンドリング戦略

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

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