/* # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your suggestions, praise, or complaints to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org/ # -------------------------------------------------------------------------- # pvsSyslog.h: # - Send output to syslog or to a file - interface # -------------------------------------------------------------------------- */ #ifndef PVSSYSLOG_H_ #define PVSSYSLOG_H_ #include #include /** * Listen on a socket or a pipe and redirect input lines to a child class. */ class PVSLogRedirector : public QObject { Q_OBJECT public slots: void inputAvailableOn(int fd); protected: virtual void doRedirectInput(QString const& line) = 0; private: QByteArray _buf; }; /** * Redirect log lines to a Unix syslog service. */ class PVSSyslogRedirector : public PVSLogRedirector { public: PVSSyslogRedirector(); virtual ~PVSSyslogRedirector(); protected: void doRedirectInput(QString const& line); }; class QFile; class QTextStream; /** * Redirect log lines to a file. */ class PVSLogfileRedirector : public PVSLogRedirector { public: PVSLogfileRedirector(QString const& filename); virtual ~PVSLogfileRedirector(); protected: void doRedirectInput(QString const& line); private: QFile* _file; QTextStream* _stream; }; #endif /* PVSSYSLOG_H_ */