Simple-logger
h1. Simple Logger
This code shows as possibly of logging with recording to the file. Also if necessary it is possible show logging information in QPlainTextEdit
Example of using
<br />QPlainTextEdit *editor = new QPlainTextEdit(this);<br />QString fileName = "c:.txt&quot;;<br />Logger *logger = new Logger(this, fileName, editor);<br />logger.write("Hello Qt&quot;);<br />
Logger.h
<br />#ifndef LOGGER_H<br />#define LOGGER_H
#include <QObject&gt;<br />#include <QPlainTextEdit&gt;<br />#include <QFile&gt;<br />#include <QTextStream&gt;<br />#include <QDateTime&gt;
class Logger : public QObject<br />{<br /> Q_OBJECT<br />public:<br /> explicit Logger(QObject *parent, QString fileName, QPlainTextEdit *editor = 0);<br /> ~Logger();<br /> void setShowDateTime(bool value);
private:<br /> QFile *file;<br /> QPlainTextEdit *m_editor;<br /> bool m_showDate;
signals:
public slots:<br /> void write(const QString &value);
};
#endif // LOGGER_H<br />
Logger.cpp
<br />#include "Logger.h&quot;
Logger::Logger(QObject *parent, QString fileName,<br /> QPlainTextEdit *editor) : QObject(parent) {
m_editor = editor;<br /> m_showDate = true;<br /> if (!fileName.isEmpty()) {<br /> file = new QFile;<br /> file->setFileName(fileName);<br /> file->open(QIODevice::Append | QIODevice::Text);<br /> }<br />}
void Logger::write(const QString &value) {<br /> QString text = value;// + "";<br /> if (m_showDate)<br /> text = QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss ") + text;<br /> QTextStream out(file);<br /> out.setCodec("UTF-8&quot;);<br /> if (file != 0) {<br /> out << text;<br /> }<br /> if (m_editor != 0)<br /> m_editor->appendPlainText(text);<br />}
void Logger::setShowDateTime(bool value) {<br /> m_showDate = value;<br />}
Logger::~Logger() {<br /> if (file != 0)<br /> file->close();<br />}<br />