🛠️

C言語のログ(logging:ロギング)処理(1)

1 min read

仕事でソフトウェアを開発しています。

10年ぶりC言語で通信アプリ開発

10年ぶりにC言語で通信アプリの開発をすることになりました。
10年前も同じような通信アプリを作りました。
そのアプリでは、ロギング処理も自作しました。
今回もそのロギング処理を流用して作ったのですが、メッセージはソース内にハードコーディングしていたり、出力ログファイルは、ファイルサイズ制限でローテーションはできるのですが、日付名ファイルとしての出力できなかったり自作しておきながらイマイチと思っています。

ロギングライブラリを調査

それならば、log4x みたいなロギングライブラリを使ってみようと調査してみました。
・syslog https://eng-entrance.com/linux-log-syslog
・log4c http://log4c.sourceforge.net/
・sclog4c https://github.com/christianhujer/sclog4c
・zlog https://hardysimpson.github.io/zlog/
などがありました。
(他にみつけたら随時追加していきます)

ロギングの要件

通信アプリなので高速に出力する必要があります。
ログの出力日時はマイクロ秒まで出力する必要があります。
マルチスレッド対応である必要があります。

まず、見つけたロギングライブラリの仕様を把握しようとドキュメント(英文)をひたすら読むことに(zlogは中文もありました...あぁ中華製ね)。

ロギングライブラリをチョイス

ドキュメントが充実していたのは、zlogでした。

https://hardysimpson.github.io/zlog/UsersGuide-EN.html

高速だと自分で言っている、マイクロ秒まで出力可、マルチスレッドPOSIX対応 と書いてありました。
OK牧場。

次回へ

次回は、zlog のドキュメントを読み進めて実際の使用に耐えうるか検証していきます。

https://zenn.dev/open_sesame/articles/763d04a261b98d

Discussion

ログインするとコメントできます