#include "SysLogger.h" #include "defines.h" #include #include CSysLogger::CSysLogger(QObject *parent) : QObject(parent) { connect(&mSyslogSocket,&QAbstractSocket::stateChanged,this,&CSysLogger::SocketStateChanged); } int CSysLogger::Start(QString SyslogServerAddress, int SyslogServerPort) { mSyslogServerAddress = SyslogServerAddress; mSyslogServerPort = SyslogServerPort; mSyslogSocket.connectToHost(SyslogServerAddress,SyslogServerPort); return RET_OK; } void CSysLogger::SocketStateChanged(QAbstractSocket::SocketState socketState) { qDebug("Syslog socked state : %d",socketState); switch (socketState) { case QAbstractSocket::ConnectedState: { qDebug("Syslogger connected..."); SysLog("Syslogger connected","CSysLogger"); break; } case QAbstractSocket::UnconnectedState: { break; } default: { qDebug("Syslogger Disconnected..."); break; } } } bool CSysLogger::IsSyslogServerConnected() { int strate = mSyslogSocket.state(); if(mSyslogSocket.state() == QAbstractSocket::ConnectedState || mSyslogSocket.state() == QAbstractSocket::BoundState) return true; return false; } int CSysLogger::SysLog(QString Message, QString Module) { if(IsSyslogServerConnected() == false) return RET_GENERAL_ERROR; /// timestamp hostname process [Module]:message /// QString MsgString; MsgString.clear(); //ISO date timestamp format QDateTime datetime(QDateTime::currentDateTime()); datetime.setOffsetFromUtc(datetime.offsetFromUtc()); //this makes no sense but it's to circumvent a bug in QT MsgString += datetime.toString(Qt::ISODate); //MsgString += datetime.toString("yyyy-MM-dd_hh:mm:ss "); ///Add Hostname, PID, MSGID , STRUCTDATA (-) MsgString.append(" Station_OT2301 OtarcikCAN "); if(Module.isEmpty() == false) { MsgString.append(QString("[%1]").arg(Module)); } MsgString.append(QString(":%1").arg(Message)); MsgString.append("\n\r"); mSyslogSocket.write(MsgString.toUtf8()); return RET_OK; }