2003-01-06 116334 [長年日記]

Logger

お次はLogger。特に通信周りはログが取れないとエラーが起きたときとかに困るので。はじめは、Log4jみたいな汎用的なログライブラリでも作ろうかと思いましたが、無駄に機能ばかりあってもしょうがないので、基本機能だけにすることにしました。

複数のスレッドが同時に同期を行えるようになったので、ログは1セッション1ファイルで作られることになります。ファイル名は、[Type]-YYYYMMDDhhmmss-[ThreadId].logということで。Typeはpop3とかsmtpとかです。日付はUTCで。

QsML

停止していたのは私のミスでした。上野さんお手数をおかけしました。

Loggerの文字コード

Loggerが扱えるのがテキストだけならば問題ないのですが、ソケットで通信しているデータをそのまま書き込まなくてはいけないので、ちょっと困ります。

とりあえず、メッセージはUTF-8で書いて、バイナリは直書きということで。日本語のメールを送受信したときのログがUTF-8とISO-2022-JPとが混じった状態になってしまいますが、基本的にメッセージは英語で書くということで。

整形

整形機能はなかなか便利なのですが、今まで自分で整形する癖がなかったので整形せずにメールを送ってしまうことが何度も。。個別に整形できたほうが便利なときもたくさんありますが、自動整形もやはり必要そうですね。

表示時にも整形?

整形機能は表示時にも使えないでしょうか。たとえば、74文字程度で折り返されているメールをPocket PCの40文字程度しか入らない画面で表示すると見づらいですが、なにやら上手く整形して40文字程度で折り返してくれるとか。もちろん引用行もそれなりに整形して。たとえば、

>> 二重に引用されている長い行があるとします。
> ここは一重の長い行です。
ここは普通の長い行です。ホントは長いんです。
 
ここも普通の長い行とします

これを、このように

>> 二十二引用されている
>> 長い行があるとします。
> ここは一重の長い行で
> す。
ここは普通の長い行です。
ホントは長いんです。
 
ここも普通の長い行とし
ます。

完全にするのは無理でしょうが、編集時の折り返し機能が多少は役に立たないかなと思うのですが、どんなもんでしょう。