Simple-logger: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
=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
This code shows as possibly of logging with recording to the file. Also if necessary it is possible show logging information in QPlainTextEdit
Line 5: Line 5:
Example of using
Example of using


Logger.h<br />
<code><br />QPlainTextEdit *editor = new QPlainTextEdit(this);<br />QString fileName = &quot;c:.txt&amp;quot;;<br />Logger *logger = new Logger(this, fileName, editor);<br />logger.write(&quot;Hello Qt&amp;quot;);<br /></code>


Logger.cpp<br />
Logger.h<br /><code><br />#ifndef LOGGER_H<br />#define LOGGER_H


===Categories:===
#include &lt;QObject&amp;gt;<br />#include &lt;QPlainTextEdit&amp;gt;<br />#include &lt;QFile&amp;gt;<br />#include &lt;QTextStream&amp;gt;<br />#include &lt;QDateTime&amp;gt;


* [[:Category:Learning|Learning]]
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);
** [[:Category:Learning::Demos and Examples|Demos_and_Examples]]
 
private:<br /> QFile *file;<br /> QPlainTextEdit *m_editor;<br /> bool m_showDate;
 
signals:
 
public slots:<br /> void write(const QString &amp;value);
 
};
 
#endif // LOGGER_H<br /></code>
 
Logger.cpp<br /><code><br />#include &quot;Logger.h&amp;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-&gt;setFileName(fileName);<br /> file-&gt;open(QIODevice::Append | QIODevice::Text);<br /> }<br />}
 
void Logger::write(const QString &amp;value) {<br /> QString text = value;// + &quot;&quot;;<br /> if (m_showDate)<br /> text = QDateTime::currentDateTime().toString(&quot;dd.MM.yyyy hh:mm:ss &quot;) + text;<br /> QTextStream out(file);<br /> out.setCodec(&quot;UTF-8&amp;quot;);<br /> if (file != 0) {<br /> out &lt;&lt; text;<br /> }<br /> if (m_editor != 0)<br /> m_editor-&gt;appendPlainText(text);<br />}
 
void Logger::setShowDateTime(bool value) {<br /> m_showDate = value;<br />}
 
Logger::~Logger() {<br /> if (file != 0)<br /> file-&gt;close();<br />}<br /></code>

Revision as of 09:44, 24 February 2015

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 = &quot;c:.txt&amp;quot;;<br />Logger *logger = new Logger(this, fileName, editor);<br />logger.write(&quot;Hello Qt&amp;quot;);<br />

Logger.h

<br />#ifndef LOGGER_H<br />#define LOGGER_H

#include &lt;QObject&amp;gt;<br />#include &lt;QPlainTextEdit&amp;gt;<br />#include &lt;QFile&amp;gt;<br />#include &lt;QTextStream&amp;gt;<br />#include &lt;QDateTime&amp;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 &amp;value);

};

#endif // LOGGER_H<br />

Logger.cpp

<br />#include &quot;Logger.h&amp;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-&gt;setFileName(fileName);<br /> file-&gt;open(QIODevice::Append | QIODevice::Text);<br /> }<br />}

void Logger::write(const QString &amp;value) {<br /> QString text = value;// + &quot;&quot;;<br /> if (m_showDate)<br /> text = QDateTime::currentDateTime().toString(&quot;dd.MM.yyyy hh:mm:ss &quot;) + text;<br /> QTextStream out(file);<br /> out.setCodec(&quot;UTF-8&amp;quot;);<br /> if (file != 0) {<br /> out &lt;&lt; text;<br /> }<br /> if (m_editor != 0)<br /> m_editor-&gt;appendPlainText(text);<br />}

void Logger::setShowDateTime(bool value) {<br /> m_showDate = value;<br />}

Logger::~Logger() {<br /> if (file != 0)<br /> file-&gt;close();<br />}<br />