X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fquassel.cpp;h=eb854b30e01da5c41b6a171622ac251fb25bbafe;hp=bf63798433ed7e6200e4d31e4e43208752c4715c;hb=8a0b44b52a6a0a855a832fa7b46f3631a8684a3f;hpb=a38400e87c5f729e083796af394643657fbc9df5 diff --git a/src/common/quassel.cpp b/src/common/quassel.cpp index bf637984..eb854b30 100644 --- a/src/common/quassel.cpp +++ b/src/common/quassel.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "message.h" #include "identity.h" @@ -51,6 +52,9 @@ bool Quassel::DEBUG = false; QString Quassel::_coreDumpFileName; Quassel *Quassel::_instance = 0; bool Quassel::_handleCrashes = true; +Quassel::LogLevel Quassel::_logLevel = InfoLevel; +QFile *Quassel::_logFile = 0; +bool Quassel::_logToSyslog = false; Quassel::Quassel() { Q_ASSERT(!_instance); @@ -62,6 +66,10 @@ Quassel::Quassel() { } Quassel::~Quassel() { + if(logFile()) { + logFile()->close(); + logFile()->deleteLater(); + } delete _cliParser; } @@ -109,6 +117,32 @@ bool Quassel::init() { } DEBUG = isOptionSet("debug"); + + // set up logging + if(Quassel::runMode() != Quassel::ClientOnly) { + if(isOptionSet("loglevel")) { + QString level = optionValue("loglevel"); + + if(level == "Debug") _logLevel = DebugLevel; + else if(level == "Info") _logLevel = InfoLevel; + else if(level == "Warning") _logLevel= WarningLevel; + else if(level == "Error") _logLevel = ErrorLevel; + } + + QString logfilename = optionValue("logfile"); + if(!logfilename.isEmpty()) { + _logFile = new QFile(logfilename); + if(!_logFile->open(QIODevice::Append | QIODevice::Text)) { + qWarning() << "Could not open log file" << logfilename << ":" << _logFile->errorString(); + _logFile->deleteLater(); + _logFile = 0; + } + } +#ifdef HAVE_SYSLOG + _logToSyslog = isOptionSet("syslog"); +#endif + } + return true; } @@ -127,14 +161,12 @@ void Quassel::registerMetaTypes() { qRegisterMetaType("NetworkInfo"); qRegisterMetaType("Network::Server"); qRegisterMetaType("Identity"); - qRegisterMetaType("Network::ConnectionState"); qRegisterMetaTypeStreamOperators("Message"); qRegisterMetaTypeStreamOperators("BufferInfo"); qRegisterMetaTypeStreamOperators("NetworkInfo"); qRegisterMetaTypeStreamOperators("Network::Server"); qRegisterMetaTypeStreamOperators("Identity"); - qRegisterMetaTypeStreamOperators("Network::ConnectionState"); qRegisterMetaType("IdentityId"); qRegisterMetaType("BufferId"); @@ -143,6 +175,8 @@ void Quassel::registerMetaTypes() { qRegisterMetaType("AccountId"); qRegisterMetaType("MsgId"); + qRegisterMetaType("QHostAddress"); + qRegisterMetaTypeStreamOperators("IdentityId"); qRegisterMetaTypeStreamOperators("BufferId"); qRegisterMetaTypeStreamOperators("NetworkId");