#pragma once #include "messages/message.hpp" #include #include #include #include #include namespace chatterino { namespace singletons { class LoggingChannel : boost::noncopyable { explicit LoggingChannel(const QString &_channelName); public: ~LoggingChannel(); void addMessage(std::shared_ptr message); private: void openLogFile(); QString generateOpeningString(const QDateTime &now = QDateTime::currentDateTime()) const; QString generateClosingString(const QDateTime &now = QDateTime::currentDateTime()) const; void appendLine(const QString &line); QString generateDateString(const QDateTime &now); const QString channelName; QString baseDirectory; QString subDirectory; QFile fileHandle; QString dateString; friend class LoggingManager; }; } // namespace singletons } // namespace chatterino