util/libsrc/util/syslog-provider.c

1 ファイル

1.1 util/libsrc/util/syslog-provider.c

1.1.1 インクルード元

syslog-provider.c のインクルード元

2 関数

2.1 syslog_provider_init

syslog_provider_t *TRACE_SYSLOG_UTIL_API syslog_provider_init ( const char *ident, int facility )

syslog プロバイダを初期化する。

openlog を呼び出し、指定された識別子と facility で syslog 接続を開きます。

2.1.1 引数

  • ident [in] syslog メッセージに付与される識別子文字列。 NULL の場合は何もせず NULL を返します。
  • facility [in] syslog facility 値 (例: LOG_USER, LOG_LOCAL0〜LOG_LOCAL7)。

2.1.2 戻り値

成功時: ハンドル。失敗時: NULL。

2.1.3 使用例

#include <syslog.h>
#include <trace-syslog-util.h>

syslog_provider_t *h = syslog_provider_init("myapp", LOG_USER);

2.1.4 呼び出し元

syslog_provider_init の呼び出し元

2.2 syslog_provider_write

int TRACE_SYSLOG_UTIL_API syslog_provider_write ( syslog_provider_t *handle, int level, const char *message )

syslog へ UTF-8 メッセージを書き込む。

2.2.1 引数

  • handle [in] syslog_provider_init の戻り値。 NULL の場合は何もせず 0 を返します。
  • level [in] syslog severity 値。 LOG_CRIT / LOG_ERR / LOG_WARNING / LOG_INFO / LOG_DEBUG
  • message [in] null 終端 UTF-8 文字列。NULL の場合は何もせず 0 を返します。
                     @par    長さ制限
                     RFC 5424 ではメッセージ全体 (ヘッダー + 構造化データ + MSG) の
                     推奨最大長は **2,048 バイト**です。多くの syslog 実装
                     (rsyslog, syslog-ng 等) はこれより大きなメッセージも受け付けますが、
                     中継経路上のリレーやコレクタが切り詰める可能性があります。\n
                     本関数は内部で @c syslog() を呼び出しており、glibc 実装では
                     メッセージ長に明示的な上限はありません (動的にバッファを確保します)。
                     ただし、ネットワーク転送時は UDP の場合 **65,535 バイト**
                     (IP ペイロード上限) を超えるメッセージは送信できません。\n
                     相互運用性を重視する場合は **1,024 バイト**以下
                     (RFC 3164 の従来上限) を目安にしてください。本関数側での切り詰めは
                     行わないため、呼び出し元で長大なメッセージを分割するか、
                     上限内に収まることを保証してください。

2.2.2 戻り値

成功 0 / 失敗 -1。

2.2.3 呼び出し元

syslog_provider_write の呼び出し元

2.3 syslog_provider_dispose

void TRACE_SYSLOG_UTIL_API syslog_provider_dispose ( syslog_provider_t *handle )

syslog プロバイダを終了する。

closelog を呼び出し、リソースを解放します。
ハンドルが NULL の場合は何もしません。

2.3.1 引数

  • handle [in] syslog_provider_init の戻り値。

2.3.2 呼び出し元

syslog_provider_dispose の呼び出し元

2.4 syslog_provider_rename

int TRACE_SYSLOG_UTIL_API syslog_provider_rename ( syslog_provider_t *handle, const char *new_ident )

syslog プロバイダの識別子を変更する。

closelog を呼び出した後、新しい識別子で openlog を 再度呼び出します。ハンドル自体は再利用されます。

2.4.1 引数

  • handle [in] syslog_provider_init の戻り値。 NULL の場合は何もせず -1 を返します。
  • new_ident [in] 新しい識別子文字列。 NULL の場合は何もせず -1 を返します。

2.4.2 戻り値

成功 0 / 失敗 -1。

2.4.3 呼び出し元

syslog_provider_rename の呼び出し元

3 クラス/構造体

3.1 syslog_provider

struct syslog_provider {
    char *ident;
}

syslog プロバイダハンドル構造体 (内部定義)。

3.1.1 属性

3.1.1.1 ident

char *ident;

openlog に渡した識別子文字列 (複製を保持)。