i remember nothing

文章の練習も兼ねています

Elixir の Logger をカスタマイズするプラグイン Loggix を作った

作った。

github.com

機能

  • ログのパスの指定
    • Erlang のログは普通は /var/app/logs/xxx.log に置かれるがこれを config/config.exs でよしなに指定できる
  • ログレベルの指定
  • ログレベルによってパスを振り分けたりできる。
  • ログローテの設定
    • 1ファイルの max_byte の指定
    • ローテするにあたってログファイルを何個作成するかの指定
  • ログフォーマットの指定
    • format: “$time $metadata [$level] $message” などとすることでログのフォーマット形式を自由に変更できる
  • メタデータの指定

    • metadata: [:user_id, :is_auth] などと指定して、 Logger.info("hoge", [user_id: "xxx-xxx", is_auth: true]) というふうに出力すると、format に合わせてログデータを出力できる。
  • JSON Encoding 機能

    • json_encoder を Poison, JSON などに指定することで好きなエンコーダでログをJSON形式で保存できる。
    • 上述のメタデータにも対応。 {"time": "0000-00-00 00:00:00.000", "level": "info", "message": "hoge", "user_id": "xxx-xxx"} のような形で出力される。
  • UTF-8 対応

課題

  • :gen_event を使っていて、ログが詰まるとプロセスが死んで死ぬ。死んでも再起動するが、死ぬ前にキューに詰まったログは破棄されてしまう。
    • 実際プロセスを 100000 sec ほど寝かせて log を出力しまくったら死んだ
  • 最高の OTP 設計を知りたい

今年やること、やらないこと

やること

 

Erlang/OTP の研究、Elixir、OCamlOSSライブラリの開発、Rust、React-Reason、分散コンピューティングの研究、バトラー、ドゥルーズ、アメリカ近代思想

 

やらないこと

 

JavaScalaGolang、株、経済学

 

急を要さないのと、興味が上記より(あくまで比較して)薄いのがあるので、来年以降。

書けないときは遺書を書くことを想像する

日記の話。

別に悲観的になってるわけではないし、明日死ぬかもしれないから、という話をしているわけではない。

日記を書く時に、何を書けばいいかわからないときがある。そういうときは、今遺書を書くとしたらどう書くか?ということを考えながら、最後の1日としての今日を日記として書き起こす。数日しか試してないが、今の所これは自分にとってはわりかし効果的な手法だ。

6/14

キング牧師の「バーミングハムの獄中からの手紙」のテキストから。

 

---

非暴力直接行動の狙いは、話し合いを絶えず拒んで来た地域社会に、争点と対決せざるを得ないような危機感と緊張をつくりだそうとするものである。(中略)ある種の建設的な非暴力的主張は、事態の発展に必要とされている。

---

 

ここで、キングの言う非暴力的主張とは敵対性を孕むものである。そして敵対性と暴力はそれ自体が等しいものではない。

しかし、現代の日本においてはその二つの概念が曖昧に捉えられているように思う。

社会的組織で波風を立てるという行為それ自身が暴力とみなされることもある。葛藤や摩擦そのものが暴力とみなされることもある。もっともこれが社会的組織の要請なのかもしれないが。

そのような時代において、敵対性と暴力というものの性質の違いに目を向けること、そして上記のようなキング牧師のテキストは価値が高まっているのかもしれないという気がして来た。