Linux Cプログラミングは初めてです
そして、CentOS ホストで実行されるサービスを作成しようとしています。log4c はログ モジュールとして機能します。
開発中とデバッグ中はすべて問題なく動作しますが、最終的にサービスとしてインストールして実行すると、ログは作成されませんでした。しかし、シェル経由で起動すると、ロギングは完璧に見えます。
サービスを開始するスクリプトは次のとおりです。
daemon MyService -c 0
入力することから始めます
./Myservice -c 0
そしてログが表示されます
助けてください、私はどこかで何か間違っていましたか?
ああ、以下は相対コードです:
//---------------------wrapper.h------------------
#define SL_LOG_TRACE(cat, fmt, args...) { \
const log4c_location_info_t locinfo = LOG4C_LOCATION_INFO_INITIALIZER(NULL); \
log4c_category_log_locinfo(cat, &locinfo, LOG4C_PRIORITY_TRACE, fmt, ##args); }\
//---------------------main.c----------------------
void SomeFunc()
{
...
SL_LOG_TRACE(g_cat, "some logs");
...
//----------------log4c リソース--------------
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE log4c SYSTEM "">
<log4c version="1.2.1">
<config>
<bufsize>0</bufsize>
<debug level="2"/>
<nocleanup>0</nocleanup>
<reread>1</reread>
</config>
<category name="FileLogger" priority="trace" appender="myrollingfileappender"/>
<appender name="myrollingfileappender" type="rollingfile" logdir="." prefix="sl_log" layout="dated" rollingpolicy="myrollingpolicy"/>
<rollingpolicy name="myrollingpolicy" type="sizewin" maxsize="102400" maxnum="10"/>
//------------------LOG4C_RCPATH="/somedir/log"---------------------