#include <syslog.h>
#include "wwwi/singleton.h"
using WWWI::GetSingleton;
inline void MINDLog::SetMethod(LogMethod i_lm) {
m_lm = i_lm;
if (i_lm==LM_SYSLOG) {
openlog("mnamed",LOG_PID,LOG_DAEMON);
}
}
inline void MINDLog::SetPriority(LogPriority i_lyAll) {
unsigned u;
for(u=0;u<LF_MAX;u++) {
this->SetPriority((LogFacility)u,i_lyAll);
}
}
inline void MINDLog::SetPriority(LogFacility i_lf, LogPriority i_ly) {
m_lya[i_lf] = i_ly;
}
inline void MINDLog::SetStream(ostream *i_smp) { m_smp = i_smp; }
inline int MINDLog::SyslogPri(LogPriority i_ly) {
switch(i_ly) {
case LY_EXTRA_DEBUG: return LOG_DEBUG;
case LY_DEBUG: return LOG_DEBUG;
case LY_INFO: return LOG_INFO;
case LY_ERROR: return LOG_ERR;
case LY_FAILURE: return LOG_CRIT;
}
return LOG_ERR;
}
inline bool MINDLog::WouldLog(LogFacility i_lf, LogPriority i_ly) {
return (m_lya[i_lf]<=i_ly);
}
inline void FastLog(LogFacility i_lf, LogPriority i_ly, const char *i_strMessage) {
MINDLogPtr lgp = GetSingleton<MINDLog>();
if (lgp->WouldLog(i_lf,i_ly)==false) return;
lgp->Log(i_lf,i_ly,i_strMessage);
}