Document of c-modernization-kit (util) 1.0.0
Loading...
Searching...
No Matches
syslog-provider.c File Reference
#include <syslog.h>
#include <trace-syslog-util.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for syslog-provider.c:

Go to the source code of this file.

Data Structures

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

Functions

syslog_provider_t *TRACE_SYSLOG_UTIL_API syslog_provider_init (const char *ident, int facility)
 syslog プロバイダを初期化する。
int TRACE_SYSLOG_UTIL_API syslog_provider_write (syslog_provider_t *handle, int level, const char *message)
 syslog へ UTF-8 メッセージを書き込む。
void TRACE_SYSLOG_UTIL_API syslog_provider_dispose (syslog_provider_t *handle)
 syslog プロバイダを終了する。
int TRACE_SYSLOG_UTIL_API syslog_provider_rename (syslog_provider_t *handle, const char *new_ident)
 syslog プロバイダの識別子を変更する。

Function Documentation

◆ syslog_provider_init()

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

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

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

Parameters
[in]identsyslog メッセージに付与される識別子文字列。 NULL の場合は何もせず NULL を返します。
[in]facilitysyslog facility 値 (例: LOG_USER, LOG_LOCAL0〜LOG_LOCAL7)。
Returns
成功時: ハンドル。失敗時: NULL。
使用例
#include <syslog.h>
syslog_provider_t *h = syslog_provider_init("myapp", LOG_USER);
syslog ヘルパーライブラリ。
struct syslog_provider syslog_provider_t
syslog プロバイダハンドル (不透明型)。
TRACE_SYSLOG_UTIL_EXPORT syslog_provider_t *TRACE_SYSLOG_UTIL_API syslog_provider_init(const char *ident, int facility)
syslog プロバイダを初期化する。

Definition at line 18 of file syslog-provider.c.

References syslog_provider::ident.

Referenced by trace_init().

Here is the caller graph for this function:

◆ syslog_provider_write()

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

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

Parameters
[in]handlesyslog_provider_init の戻り値。 NULL の場合は何もせず 0 を返します。
[in]levelsyslog severity 値。 LOG_CRIT / LOG_ERR / LOG_WARNING / LOG_INFO / LOG_DEBUG
[in]messagenull 終端 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 の従来上限) を目安にしてください。本関数側での切り詰めは
                     行わないため、呼び出し元で長大なメッセージを分割するか、
                     上限内に収まることを保証してください。
Returns
成功 0 / 失敗 -1。

Definition at line 50 of file syslog-provider.c.

Referenced by write_to_provider().

Here is the caller graph for this function:

◆ syslog_provider_dispose()

void TRACE_SYSLOG_UTIL_API syslog_provider_dispose ( syslog_provider_t * handle)

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

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

Parameters
[in]handlesyslog_provider_init の戻り値。

Definition at line 63 of file syslog-provider.c.

References syslog_provider::ident.

Referenced by trace_dispose(), and trace_init().

Here is the caller graph for this function:

◆ syslog_provider_rename()

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

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

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

Parameters
[in]handlesyslog_provider_init の戻り値。 NULL の場合は何もせず -1 を返します。
[in]new_ident新しい識別子文字列。 NULL の場合は何もせず -1 を返します。
Returns
成功 0 / 失敗 -1。

Definition at line 76 of file syslog-provider.c.

References syslog_provider::ident.

Referenced by trace_modify_name().

Here is the caller graph for this function: