|
このページの場所 https://www.si-linux.co.jp/catwiki/ -> リモートsyslog printf()デバッグの気楽さをそのままにリモートでログを保存するtips Cプログラム †マクロの定義 #include <stdio.h> #include <syslog.h> #define DEBUG #ifdef DEBUG #define debug_printf(format, ...) \ do{ \ syslog(LOG_DEBUG, "%s:%d:%s() " format, __FILE__, __LINE__,__func__,##__VA_ARGS__); \ fflush(stderr); \ } while(0) #else #define debug_printf(format, ...) #endif #define info_printf(format, ...) \ do{ \ syslog(LOG_INFO, "%s:%d:%s() " format, __FILE__, __LINE__,__func__,##__VA_ARGS__); \ fflush(stderr); \ } while(0) debug_printf() デバッグ時のみ必要な情報を出力するマクロ info_printf() 一般情報を出力するマクロ どちらも printf()と同様に使う 使い方 openlog(NULL, LOG_PERROR|LOG_PID, LOG_USER); /* LOG_PERROR は標準エラー出力にも出力 */ /* LOG_PID は pidも出力 */ debug_printf("ここまで来た\n"); info_printf("x=%d, y=%d\n",x,y); ソース全部 main.c 転送元_組み込み機器 †
ログ転送先ホスト名を解決できるようにする。loghostが転送先 192.168.1.2 loghost
*.* @(z9)[loghost] :programname, isequal, "a.out" /var/log/local.log & ~
再起動または # /etc/init.d/rsyslog restart 転送先_ログサーバ †
UDP/514 と TCP/514 の着信を設定 # provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1,192.168.1.0/24,172.16.0.0/16 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 $AllowedSender TCP, 127.0.0.1,192.168.1.0/24,172.16.0.0/16 $AllowedSenderはUDPとTCP別々に書きます。ホスト名は,で複数指定できますが,の前後にスペースを入れてはいけません。
$template RemoteHost,"/var/log/remote/%HOSTNAME%.log" :fromhost-ip, !isequal, "127.0.0.1" -?RemoteHost & ~ ローカルホスト(127.0.0.1)以外は /var/log/remote/ホスト名.log に保存する 再起動または # /etc/init.d/rsyslog restart 関連 † |