Simple-logger
Jump to navigation
Jump to search
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
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
QPlainTextEdit *editor = new QPlainTextEdit(this);
QString fileName = "c:.txt";
Logger *logger = new Logger(this, fileName, editor);
logger.write("Hello Qt");
Logger.h
#ifndef LOGGER_H
#define LOGGER_H
#include <QObject>
#include <QPlainTextEdit>
#include <QFile>
#include <QTextStream>
#include <QDateTime>
class Logger : public QObject
{
Q_OBJECT
public:
explicit Logger(QObject *parent, QString fileName, QPlainTextEdit *editor = 0);
~Logger();
void setShowDateTime(bool value);
private:
QFile *file;
QPlainTextEdit *m_editor;
bool m_showDate;
signals:
public slots:
void write(const QString &value);
};
#endif // LOGGER_H
Logger.cpp
#include "Logger.h"
Logger::Logger(QObject *parent, QString fileName,
QPlainTextEdit *editor) : QObject(parent) {
m_editor = editor;
m_showDate = true;
if (!fileName.isEmpty()) {
file = new QFile;
file->setFileName(fileName);
file->open(QIODevice::Append | QIODevice::Text);
}
}
void Logger::write(const QString &value) {
QString text = value;// + "";
if (m_showDate)
text = QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss ") + text;
QTextStream out(file);
out.setCodec("UTF-8");
if (file != 0) {
out << text;
}
if (m_editor != 0)
m_editor->appendPlainText(text);
}
void Logger::setShowDateTime(bool value) {
m_showDate = value;
}
Logger::~Logger() {
if (file != 0)
file->close();
}