プロジェクト

全般

プロフィール

提案 #1580

完了

デバッグ用メッセージの改善

Izumi Tsutsui さんが約2年前に追加. 約2年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
プラグイン名:

説明

Mastodonでいくつか挙がっていたデバッグメッセージに対する改善要望をとりあえずメモするチケットです。

https://social.mikutter.hachune.net/@shibafu528/107587752715642732
チケあって良さそうですね。欲しいもの書く場所あったほうが手入れる時にやりやすいと思うので。

toshi_a 初音 さんが約2年前に更新

  • ステータス分類待ち から 実装待ち に変更

基本的には標準のLoggerを使えば良さそう
https://docs.ruby-lang.org/ja/latest/class/Logger.html

現在のnoticeなどのメソッドを転送すればいいが、warnだけ標準のメソッドをoverrideしてしまっている。

Izumi Tsutsui さんが約2年前に更新

本題と関係ないんですが、起動時の
warning: {MIKUTTER_DIR}/core/mui/gtk_extension.rb:6:in `<top (required)>': require-if-exist: file not found: Win32API
がいつも気になってしまいます。これは overrideしているせい?

Shibafu Midorino さんが約2年前に更新

  • 担当者Shibafu Midorino にセット

やってみます。


Izumi Tsutsui さんは #note-2 で書きました:

本題と関係ないんですが、起動時の
warning: {MIKUTTER_DIR}/core/mui/gtk_extension.rb:6:in `<top (required)>': require-if-exist: file not found: Win32API
がいつも気になってしまいます。これは overrideしているせい?

7dc2b635a37ee1948f8427124f331229255a8b05 で追加されたWindows対応用のrequireの空振り警告みたいですね。
require自体いらないような気もしますが、検証もできなさそうですね……。

Shibafu Midorino さんが約2年前に更新

出力先がttyだったら、エスケープシーケンスを使ってログレベルや注目すべき場所に色分けがあると、個人的には見やすくて嬉しいなという思いがあります。
起動オプションで有効にする程度の扱いでも構わないんですが、いかがでしょうか? 実装入れちゃってもいいですか?

Izumi Tsutsui さんが約2年前に更新

Shibafu Midorino さんは #note-4 で書きました:

出力先がttyだったら、エスケープシーケンスを使ってログレベルや注目すべき場所に色分けがあると、個人的には見やすくて嬉しいなという思いがあります。
起動オプションで有効にする程度の扱いでも構わないんですが、いかがでしょうか? 実装入れちゃってもいいですか?

「黒地に青がほとんど見えない端末」「白地に黄色がほとんど見えない端末」があるのでそのへんは避けたいという思いはあります。
(こちらの化石環境 kterm とかの場合 git log のデフォルト黄色とか壊滅)

そうなると赤・緑・マゼンタくらいしか残らないのですが(白地にシアンも見えるといえば見えるが)、
`--debug` 同様でオプションで切り替えられるのであれば「役に立つケースがあるのであれば選択可能」ということで問題ないと思います。

Shibafu Midorino さんが約2年前に更新

  • ステータス実装待ち から レビュー待ち に変更
  • 担当者 を削除 (Shibafu Midorino)
  • ブランチtopic/1580-new-logger にセット

多くの場合にちゃんと見える色を選ぼうとするとびっくりするくらい選択肢が少ないですよね、どうしてこんな実装ばかり……。
なお、現代では色の視認性を重視しているユーザーは耐えきれずに端末の配色設定をカスタマイズしてしまうと思うので、そこまで掘り下げない姿勢です。


ある程度実装できたのでpushしました。何人か見ていただければと思います。

  • logメソッドはLoggerを経由して出力するようになりました。これによって出力にタイムスタンプが含まれるようになったのと、自前のmutexが不要になりました。
  • (内部処理用と注釈されているのを良いことに) logメソッドに手を加えたので、notice, warn, errorの各ログレベルのメソッドはあんまり手を加えていません。渡す引数はちょっと変えた。
  • logメソッドに関連してlogfileメソッドというのがあり、どうやらlogメソッドに渡した内容を端末以外のファイルに書き出す機能があったようなのですが、 toshi_aさんも覚えてないみたい なので消しました。
  • --color オプションを付けると、stderrがttyの場合にANSIエスケープシーケンスを使って色付けするようになりました。
    • 途中のcommitまで、ログ本文が目に入りやすいように呼出元情報を薄めの色に変えようとしていたけど、情報の優先度付けに自信が持てなかったのでやめました。(バックトレース付きのパターンでちぐはぐだし)

Izumi Tsutsui さんが約2年前に更新

手元作業ブランチにマージしてやってみました。
だいたいよさそうですが、通常メッセージの間に notice が割り込んでしまうことがあるような?

I, [2022-01-18T00:00:52.846083 #2208]  INFO -- /home/tsutsui/.mikutter/plugin/postbox_text_font/postbox_text_font.rb:13:in `gen_widget_post': postbox_font css: textview { font-family: 'VL Pゴシック'; font-size: 11pt; }
#<Thread:0xab838028 /home/tsutsui/mikutter/mikutter/plugin/notification/notification.rb:14 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
        7: from /home/tsutsui/mikutter/mikutter/plugin/notification/notification.rb:15:in `block in main'
        6: from /usr/pkg/lib/ruby/2.7.0/open-uri.rb:744:in `open'
        5: from /usr/pkg/lib/ruby/2.7.0/open-uri.rb:174:in `open_uri'
        4: from /usr/pkg/lib/ruby/2.7.0/open-uri.rb:233:in `open_loop'
        3: from /usr/pkg/lib/ruby/2.7.0/open-uri.rb:233:in `catch'
        2: from /usr/pkg/lib/ruby/2.7.0/open-uri.rb:235:in `block in open_loop'
        1: from /usr/pkg/lib/ruby/2.7.0/open-uri.rb:764:in `buffer_open'
/usr/pkg/lib/ruby/2.7.0/open-uri.rb:387:in `open_http': 500 Internal Server Error (OpenURI::HTTPError)
I, [2022-01-18T00:00:53.842179 #2208]  INFO -- {MIKUTTER_DIR}/plugin/mastodon_sse_streaming/raw_server_sent_events_stream.rb:31:in `block in to_enum': connect https://social.mikutter.hachune.net/api/v1/streaming/user? (#<Plugin::Mastodon::SSEAuthorizedType:0xac0a7d80>)
I, [2022-01-18T00:00:53.843315 #2208]  INFO -- {MIKUTTER_DIR}/plugin/mastodon_sse_streaming/raw_server_sent_events_stream.rb:31:in `block in to_enum': connect https://social.mikutter.hachune.net/api/v1/streaming/public/local?only_media=false (#<Plugin::Mastodon::SSEAuthorizedType:0xac0a5e40>)
I, [2022-01-18T00:00:54.226846 #2208]  INFO -- {MIKUTTER_DIR}/plugin/mastodon_sse_streaming/raw_server_sent_events_stream.rb:31:in `block in to_enum': connect https://social.mikutter.hachune.net/api/v1/streaming/public/local (#<Plugin::Mastodon::SSEPublicType:0xa8e94a50>)
I, [2022-01-18T00:00:54.227317 #2208]  INFO -- {MIKUTTER_DIR}/plugin/mastodon_sse_streaming/raw_server_sent_events_stream.rb:31:in `block in to_enum': connect https://social.mikutter.hachune.net/api/v1/streaming/public/local (#<Plugin::Mastodon::SSEPublicType:0xa8e77400>)
I, [2022-01-18T00:00:54.822407 #2208]  INFO -- {MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112:in `block in bulk_add': @order.(message): 1642308988
I, [2022-01-18T00:00:54.873909 #2208]  INFO -- {MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112:in `block in bulk_add': @order.(message): 1642308032
I, [2022-01-18T00:00:54.889524 #2208]  INFO -- {MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112:in `block in bulk_add': @order.(message): 1642307145
#<NoMethodError: undefined method `has_key?' for nil:NilClass>I, [2022-01-18T00:00:54.895467 #2208]  INFO -- {MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112:in `block in bulk_add': @order.(message): 1642307131
I, [2022-01-18T00:00:54.896305 #2208]  INFO -- {MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112:in `block in bulk_add': @order.(message): 1642307115

I, [2022-01-18T00:00:54.899042 #2208]  INFO -- {MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112:in `block in bulk_add': @order.(message): 1642306176

{MIKUTTER_DIR}/plugin/gtk3/widget/timeline.rb:112 は手元デバッグ用メッセージです。

toshi_a 初音 さんが約2年前に更新

  • ステータスレビュー待ち から 終了 に変更

他の形式にエクスポート: Atom PDF