Simple-logger: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Add "cleanup" tag)
(Convert ExpressionEngine section headers)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


h1. Simple Logger
= 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



Revision as of 16:30, 5 March 2015

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 &amp;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 &amp;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();
}