読者です 読者をやめる 読者になる 読者になる

Elispでのログ出力をサポートするlog4e.elを作りました

これは何?

Emacsは大分前から使っていますが、ようやく最近Elispを書くようになりました。
で、Elispでロギングフレームワーク的なものはまだないようで、 自分の使っている拡張のコードを幾つか見てみると、 自前でデバッグ用のコードを仕込んでいたりしました。

ですが、最近はel-getなどのパッケージ管理も利用可能になってきているので、 ログ出力機能を別の拡張として切り出すことにしました。

Elispの作法などに詳しくないので、果たしてどれほどの利用価値があるかわかりませんが、 とりあえず、自分が使って大分良い感じになってきたので、公開することにしました。

特徴

ログ出力関連の関数を提供

以下のs式を対象のElisp内に記述することで、

(log4e:deflogger "hoge" "%t [%l] %m" "%H:%M:%S")

以下の関数やコマンドが定義されて使えるようになります。(※1)

  • hoge--log-fatal (※2)
  • hoge--log-error (※2)
  • hoge--log-warn (※2)
  • hoge--log-info (※2)
  • hoge--log-debug (※2)
  • hoge--log-trace (※2)
  • hoge--log
  • hoge--log-set-level
  • hoge--log-enable-logging
  • hoge--log-disable-logging
  • hoge--log-enable-debugging
  • hoge--log-disable-debugging
  • hoge--log-debugging-p
  • hoge--log-set-coding-system
  • hoge--log-set-author-mail-address
  • hoge--log-clear-log
  • hoge--log-open-log
  • hoge--log-open-log-if-debug

※1:同名の関数は定義しないようにしてもらわなければいけませんが。
※2:名称変更可能です。

ログバッファの色付け

ログ出力結果のバッファは以下のように色付けされます。

f:id:aki2o:20130420161602p:plain

※以下のfaceを使用しています。

  • font-lock-doc-face
  • font-lock-keyword-face
  • font-lock-string-face
  • font-lock-warning-face

ログバッファでのキーバインド

ログ出力結果のバッファはview-modeを拡張したlog4e-modeになります。
view-modeに加えて、以下のキーバインドが追加されています。

  • J - log4e:next-log ... 次のログの先頭に移動する
  • K - log4e:previous-log ... 前のログの先頭に移動する

インストール

ソース置き場: https://github.com/aki2o/log4e

以下の方法があります。

package.elを使う場合

2013/07/19 melpaリポジトリからインストール可能になりました。

el-get.elを使う場合

2013/07/26 インストール可能になりました。ただし、まだmasterにしか登録されていません。

auto-install.elを使う場合

(auto-install-from-url "https://raw.github.com/aki2o/log4e/master/log4e.el")

手動の場合

上記URLにアクセスし、log4e.elをダウンロードしてロードパスの通った場所に配置

Enjoy!!!

その他

  • 詳しい使い方はここにまとめます。
  • 動作確認したEmacsは、GNU Emacs 23.3.1 (i386-mingw-nt5.1.2600) of 2011-08-15 on GNUPACK です。
  • バグレポートを送ってもらったり、GitHubにissue登録してもらう機能も欲しいなと思ってます。