int32_t communicationbase::openLog(const char *LogName, int AscOrDec, int OpenType)
{
if( m_logFlag == 0)
{
m_logLock.lock();
m_logFlag = 1;
printf("openlog0-%p\n",m_iop_log_service);
m_iop_log_service = (iop_log_service_t *)malloc(sizeof(iop_log_service_t));
printf("openlog1-%p\n",m_iop_log_service);
int flag = iop_log_service_start(m_iop_log_service,"",LogName,100,AscOrDec,OpenType);
m_logLock.unlock();
return flag;
}
else
return -1;
}
int32_t communicationbase::closeLog()
{
if( m_logFlag == 1)
{
m_logLock.lock();
m_logFlag = 0;
int flag = iop_log_service_stop(m_iop_log_service);
m_iop_log_service = 0;
m_logLock.unlock();
return flag;
}
else
{
return -1;
}
}
测试程序中循环的调用这两个函数,系统是linux,下面是打印信息:
log-dbg-begin-1023--0x45177008
log-dbg-begin1-0x45177008
log-dbg-0-0
log-dbg-0-1
log-dbg-0-2
log-dbg-0-3
log-dbg-1
log-dbg-2
log-dbg-end
log-dbg-begin-1023--0x45177008
log-dbg-begin1-0x45177008
log-dbg-0-0
log-dbg-0-1
log-dbg-0-2
log-dbg-0-3
log-dbg-1
log-dbg-2
log-dbg-end
log-dbg-begin-1023--0x45177008
log-dbg-begin1-0x45177008