エンジニアブログ

エンジニアブログ

C言語でログ機能を実装した話

先日業務でPythonを使用した際、ログ機能に初めて触れました。
ログとして残したものがファイルに出力されるため、動作の確認がとても楽になり、
リリースの際はログの出力を無効にするだけで一括で切替できるのがとても便利だと感じました。

 

これまでC言語を学んできた私としては「C言語でもこんな機能が欲しい!!」と思い、
調べてみたのですが、残念ながら標準のライブラリでは見つかりませんでした。
「ないならつくるしかない」と思い、ログ機能を作成し始めました。

 

作成するにあたり、以下のことを考えました。
・Pythonのログ機能と同様の使用感であること(logger.debug()みたいな使い方)
・リリース時に全て消す必要がないこと(出力の有効無効を切り替えられること)
・フォーマットは統一すること(関数名と行数等表示は固定でほしい)
・ログの出力にレベルが欲しい(debug , warning , error等)

 

規模としては小さなものだったので、思いついてから2週間もかからず作成できました。
動作テストも無事クリアしたのであとは実用あるのみです。

 

とはいえ、今日までC言語を使う機会がなくフォルダの奥底で寝かせてある状態になってます。
(組み込みソフトだとファイル出力できないんじゃ…)

 

ログ機能を実装するにあたってあまり使ってこなかった関数ポインタや、
事前定義識別子などを使用することができたのでいい勉強になりました。