I just want to create a System logger using syslog.h
in my application. I don't know how to start to create using that library and I downloaded the syslog in this link https://github.com/asankah/syslog-win32 but i don't know how it works. I searched related topics about on how to use syslog but i saw many topics on linux OS, I try it but it doesn't work. I targeted to create this syslog in windows OS and apply it in my application that I developed.
When I used this syntax:
#include "mainwindow.h"
#include <QApplication>
#include <syslog.h>
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
#include <QString>
#include <QByteArray>
#include<QtCore/QtGlobal>
#include <QFile>
#include <QTextStream>
#pragma comment(lib,"Ws2_32.lib")
void SyslogMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
QString Stype;
char fmt[] = {"Debug: %s", "Info: %s", "Warning: %s", "Critical: %s", "Fatal %s"};
switch (type) {
case QtDebugMsg:
syslog(LOG_DEBUG, fmt[0], localMsg.constData());
break;
case QtInfoMsg:
syslog(LOG_INFO, fmt[1], localMsg.constData());
break;
case QtWarningMsg:
syslog(LOG_WARNING, fmt[2], localMsg.constData());
break;
case QtCriticalMsg:
syslog(LOG_CRIT, fmt[3], localMsg.constData());
break;
case QtFatalMsg:
syslog(LOG_ALERT, fmt[4], localMsg.constData());
abort();
break;
}
QFile outFile("Log.txt");
outFile.open(QIODevice::WriteOnly | QIODevice::Append /*|QIODevice::Truncate*/);
QTextStream ts(&outFile);
QString log = QString("%1: %2 \n").arg(Stype).arg(msg).arg(context.file).arg(context.line).arg(context.function);
QByteArray logMsg = log.toLocal8Bit();
ts << logMsg << endl;
outFile.close();
}
int main(int argc, char *argv[])
{
init_syslog("localhost");
qInstallMessageHandler(SyslogMessageHandler);
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
The following error occurs:
void syslog(int,char *,...)': cannot convert argument 2 from const char [7]' to 'char *
error: LNK2019: unresolved external symbol init_syslog referenced in function main
I don't know what the problem is.