高性能と豊富な機能セットのために構築されたACロギングライブラリ。
한국어| 简体中文
重要な機能|ビルドとインストール|基本的な使用法|貢献
Stumplessには、Cでログインすることができる多くの機能があります。
このライブラリの主な目標は、さまざまなログターゲットに一貫したロギングインターフェイスを提供することです。これは、他のSDKを見つけたり、Daemonsやプラグインを追加して必要な場所に手に入れることなく、イベントを定義したい場所に集中できることを意味します。 Stumplessはログを書くことができます:
必要なものがわかりませんか?リクエストで問題を作成すると、ロードマップに取り組みます!
Stumplessは、ビルドするのにCmakeとCmakeがサポートするビルドツールチェーン(GCCやVisual Studioなど)のみを必要とします。
# cloning the latest version of the source tree
git clone [email protected]:goatshriek/stumpless.git
# creating a new build directory
mkdir build
cd build
# configuring the new build
cmake ../stumpless
# building stumpless (with 4 threads - adjust as desired)
cmake --build . --parallel 4
# install the library (you probably need sudo to do this)
sudo cmake --install .さまざまな環境および/または他のツールチェーンを使用して、Stumplessの構築とインストールの詳細については、インストール手順を確認してください。
開始する最も簡単な方法は、 stumplogプログ機能を標準ライブラリのsyslog関数の直接置換として使用することです。
// if you're used to doing this:
syslog ( LOG_INFO | LOG_USER , "My message #%d" , count );
// then you can start by changing to this:
stumplog ( LOG_INFO | LOG_USER , "My message #%d" , count );ターゲットを開いていない場合、これはプラットフォームのデフォルトターゲットにメッセージをログに記録します。Linuxでは/dev/log 、Macシステムでは/var/run/syslogになり、WindowsマシンではWindowsイベントログです。 stumplog呼び出す前にターゲットを開く前に、またはいくつかを開くと、ログが最近開かれたターゲットに送信されます。
さらに短い関数呼び出しが必要な場合は、 stump関数を使用して現在のターゲットにメッセージを送信できます。 printfと同じように、フォーマット仕様を使用することもできます。
stump ( "Login attempt failure #%d for user %s" , count , username );フォーマット仕様が必要ない場合は、 _strバリエーションの1つを使用します。より速くて安全です!
stump_str ( "Login failure! See structured data for info." );デフォルトを使用するのではなく、特定のターゲットを開く場合は、必要なターゲットを開いてメッセージの送信を開始します。たとえば、 example.logという名前のファイルにログにログするには:
target = stumpless_open_file_target ( "example.log" );
// uses the last opened target by default
stump ( "Login attempt failure #%d for user %s" , count , username );ネットワークを介してSplunkやRsyslogのようなものにメッセージを送信するのも簡単です。
target = stumpless_open_udp4_target ( "send-to-splunk-example" ,
"mylogserver.com" ); // or use an IP
stump ( "Login attempt failure #%d for user %s" , count , username );複数のターゲットがある場合は、このような選択したターゲットにメッセージを送信できます。
stumpless_add_message ( target ,
"Login attempt failure #%d for user %s" ,
count ,
username );ロギングコールで重大度レベルを直接指定することが一般的であるため、Stumplessはマクロ関数を提供して、これをより冗長で効率的にします。たとえば、情報の重大度でメッセージを記録するには、これを行うことができます。
stump_i ( "this gets logged as an info message" );また、各メッセージにソースファイル、行番号、および関数名情報も表示する場合は、 _t ( 't'はトレース用です)を使用できます。
stump_t ( "this includes source info" );これらの関数を使用すると、 STUMPLESS_ENABLE_UPTOまたはSTUMPLESS_DISABLE_DOWNTOシンボルを定義するだけで、コンパイル時に削除できるという追加の利点があります。これにより、ビルド間でロギングレベルを簡単に変更できます。たとえば、ソースコードに違いがない製品バージョンやデバッグバージョンを持つことができます。
// be sure to define this before stumpless.h gets included
#define STUMPLESS_ENABLE_UPTO_INFO
// ...
// this log will go through just fine
stump_i ( "I'm doing that thing you asked" );
// this debugging message is completely removed: no runtime impact whatsoever
stump_d ( "DEBUG info: %d, %d, %s" , thing_1 , thing_2 , stringy_thingy );Stumpless/Levelのヘッダーをチェックして、Shorthand関数の重大度の完全なリスト、または完全なプログラムが実行中のプログラムを表示するための重大度レベルの例を確認してください。
上記のシナリオのより詳細な例、特定のターゲットタイプの使用、より複雑なメッセージ構造を処理する方法、およびその他の例をご覧ください。これらには、コンパイル、実行、変更して開始するためのアノテッドサンプルコードファイルが含まれます。
問題に気づくか、機能リクエストがありますか?テンプレートのいずれかを使用して問題を作成するだけで、できるだけ早く応答します。また、オープンソースコミュニティに還元できるさまざまな方法の詳細については、プロジェクトの貢献ガイドラインをご覧ください。
実際にいくつかのコードを書きたい場合、または自分で更新を行う場合は、開発ガイドをご覧になって、詳細なオリエンテーションを取得してください。経験のレベルと貢献に精通していることに基づいて、いくつかのオプションがあります。
最初のオプションは、ラベルの良い最初の問題でマークされた問題のリストを閲覧することです。これらの問題は、小規模でありながら意味のある量の作業であるように選択され、それらを完了するために取ることができる一般的なアプローチの詳細が含まれています。あなたがこのプロジェクトの水域をテストしたり、一般的にオープンソースの貢献をテストしたりするだけなら、彼らは始めるのに最適な場所です。
より経験豊富な開発者は、ロードマップだけでなく、プロジェクトの問題の完全なリストを見ることを好むかもしれません。アイテムが興味を引いた場合、既存の問題にコメントをドロップするか、まだ存在しない場合は新しい問題を開き、他の人が進行中であることを知る方法があるように、それに取り組む意図を述べます。
ここで説明されていない滅菌機能がどのように機能しているかに興味がある場合は、ドキュメントフォルダーに保存されているドキュメントの適切なセクションを確認できます。リポジトリ内のフォルダーには、含まれているものやその他の関連情報を詳述する独自のreadmeファイルが含まれています。各関数のドキュメントは、CライブラリとC ++のような他の言語バインディングの両方について、プロジェクトWebサイトでもホストされています。
Stumplessには、 manページの形でローカルインストールのドキュメントも含まれています。ライブラリをインストールしたら、ヘッダーファイル(および含まれる関数)のドキュメントを、ディレクトリを持つヘッダーの名前を持つMANを実行して、 man stumpless_log.hに置き換えたドキュメントを確認できます。
また、サポートのためにプロジェクトチームとより広範なコミュニティに連絡できる方法もたくさんあります。