This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Michael Zanetti 5e3bc2acbd Drop JsonTypes class by distributing logic to json handlers
This is required in order to be able to be more flexible in registering
new types/methods.
2019-11-01 20:46:55 +01:00

177 lines
5.7 KiB
C++

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Copyright (C) 2014 Michael Zanetti <michael_zanetti@gmx.net> *
* Copyright (C) 2015 Simon Stürz <simon.stuerz@guh.io> *
* *
* This file is part of nymea. *
* *
* nymea is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, version 2 of the License. *
* *
* nymea is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with nymea. If not, see <http://www.gnu.org/licenses/>. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*!
\class nymeaserver::LogEntry
\brief Represents an entry of the log database.
\ingroup logs
\inmodule core
A \l{LogEntry} represents an a nymea event which can be stored from the \l{LogEngine} to the database.
Each LogEntry has a timestamp an can be loaded from the database and stored in the database.
\sa LogEngine, LogFilter, LogsResource, LoggingHandler
*/
/*! \fn QDebug nymeaserver::operator<< (QDebug dbg, const LogEntry &entry);;
Writes the \l{LogEntry} \a entry to the given \a dbg. This method gets used just for debugging.
*/
#include "logentry.h"
#include "nymeacore.h"
#include <QDebug>
#include <QMetaEnum>
namespace nymeaserver {
/*! Constructs a \l{LogEntry} with the given \a timestamp, \a level, \a source and \a errorCode.*/
LogEntry::LogEntry(QDateTime timestamp, Logging::LoggingLevel level, Logging::LoggingSource source, int errorCode):
m_timestamp(timestamp),
m_level(level),
m_source(source),
m_eventType(Logging::LoggingEventTypeTrigger),
m_active(false),
m_errorCode(errorCode)
{
}
/*! Constructs a \l{LogEntry} with the given \a level, \a source and \a errorCode.*/
LogEntry::LogEntry(Logging::LoggingLevel level, Logging::LoggingSource source, int errorCode):
LogEntry(NymeaCore::instance()->timeManager()->currentDateTime(), level, source, errorCode)
{
}
/*! Constructs a \l{LogEntry} with the given \a source.*/
LogEntry::LogEntry(Logging::LoggingSource source):
LogEntry(Logging::LoggingLevelInfo, source)
{
}
/*! Returns the timestamp of this \l{LogEntry}. */
QDateTime LogEntry::timestamp() const
{
return m_timestamp;
}
/*! Returns the level of this \l{LogEntry}. */
Logging::LoggingLevel LogEntry::level() const
{
return m_level;
}
/*! Returns the source of this \l{LogEntry}. */
Logging::LoggingSource LogEntry::source() const
{
return m_source;
}
/*! Returns the type ID of this \l{LogEntry}. */
QUuid LogEntry::typeId() const
{
return m_typeId;
}
/*! Sets the \a typeId of this \l{LogEntry}. */
void LogEntry::setTypeId(const QUuid &typeId) {
m_typeId = typeId;
}
/*! Returns the deviceId of this \l{LogEntry}. */
DeviceId LogEntry::deviceId() const
{
return m_deviceId;
}
/*! Sets the \a deviceId of this \l{LogEntry}. */
void LogEntry::setDeviceId(const DeviceId &deviceId)
{
m_deviceId = deviceId;
}
/*! Returns the value of this \l{LogEntry}. */
QVariant LogEntry::value() const
{
return m_value;
}
/*! Sets the \a value of this \l{LogEntry}. */
void LogEntry::setValue(const QVariant &value)
{
m_value = value;
}
/*! Returns the event type of this \l{LogEntry}. */
Logging::LoggingEventType LogEntry::eventType() const
{
return m_eventType;
}
/*! Sets the \a eventType of this \l{LogEntry}. */
void LogEntry::setEventType(const Logging::LoggingEventType &eventType)
{
m_eventType = eventType;
}
/*! Returns true if this \l{LogEntry} is a system active type. */
bool LogEntry::active() const
{
return m_active;
}
/*! Sets this \l{LogEntry} to \a active. */
void LogEntry::setActive(bool active)
{
m_active = active;
}
/*! Returns the error code of this \l{LogEntry}. */
int LogEntry::errorCode() const
{
return m_errorCode;
}
QDebug operator<<(QDebug dbg, const LogEntry &entry)
{
QMetaEnum metaEnum;
dbg.nospace() << "LogEntry (" << entry.timestamp().toString() << ")" << endl;
dbg.nospace() << " time stamp: " << entry.timestamp().toTime_t() << endl;
dbg.nospace() << " DeviceId: " << entry.deviceId().toString() << endl;
dbg.nospace() << " type id: " << entry.typeId().toString() << endl;
metaEnum = QMetaEnum::fromType<Logging::LoggingSource>();
dbg.nospace() << " source: " << metaEnum.valueToKey(entry.source()) << endl;
metaEnum = QMetaEnum::fromType<Logging::LoggingLevel>();
dbg.nospace() << " level: " << metaEnum.valueToKey(entry.level()) << endl;
metaEnum = QMetaEnum::fromType<Logging::LoggingEventType>();
dbg.nospace() << " eventType: " << metaEnum.valueToKey(entry.eventType()) << endl;
dbg.nospace() << " error code: " << entry.errorCode() << endl;
dbg.nospace() << " active: " << entry.active() << endl;
dbg.nospace() << " value: " << entry.value() << endl;
return dbg.space();
}
}