ctxloggithub.comなんで作ったの?ちょっとした作業をするのに欲しくなったから。loggingの部分が欲しい。loggingはzapを使えばおしまいで良さそうだった。できそうなことが多すぎそうだったので絞った。loggingの話は昔書いた(ただしpythonでの話で余分な情報がたくさん含まれている)。標準ライブラリの範囲で構造化ログで出力するようにしてみるさすがに丸投げだと悪いのでもう少しだけ説明する。?雑に言うとトップレベルの情報(あるいは上流の情報)を末端部分(あるいは下流)でも利用したいと言う時に使われる。以下のようなトップレベルの関数Fの呼び出しがあったとして、それが末端部分ではh0,h1のような関数呼び出しにつながるとする。ここで引数としては渡って来ない情報をh0,h1などのログに付加したいよねみたいな話。IDなどはその最たるもの。tracingIDは関係ないのだから付加させたくないはい。(x-idは直接は渡されない)以下のような出力を作ることができる。nil}contextにロガーを突っ込むのはなし?個人的にはありだと想う。loggingをやるにはなにかしらの情報を保持する存在が必要。それをcontextオブジェクト以外に渡すという形になると常にloggerも込みでバケツリレーが必要になる。scope(でしかないように使う)。cycleは違うかもしれない)。注意点としてはcontextにロガーが含まれていない場合にnilパニックを起こすようなコードは書いてはダメということくらい。これはデフォルトではNoopLoggerが返ってくるので大丈夫。以下のような警告メッセージを出すことにした。ctxlog.Set()****************************************警告メッセージが微妙という話はある。戻り値がちょっとだけ不格好なように観える。なんでこのようにしたかという話。返した場合のことを考えてみる。これはLoggerのメソッドが使えない。