swift
Loading...
Searching...
No Matches
logmessage.cpp
1// SPDX-FileCopyrightText: Copyright (C) 2014 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
5
6#include "misc/logmessage.h"
7
8#include <QLoggingCategory>
9
10namespace swift::misc
11{
12
13 CLogMessage::CLogMessage(const char *file, int line, const char *function) : m_logger(file, line, function) {}
14
15 CLogMessage::operator CStatusMessage() { return { m_categories, m_severity, message() }; }
16
17 CLogMessage::~CLogMessage() { ostream(qtCategory()).noquote() << message(); }
18
19 QByteArray CLogMessage::qtCategory() const { return m_categories.toQString().toLatin1(); }
20
21 QDebug CLogMessage::ostream(const QByteArray &category) const
22 {
23 if (m_categories.isEmpty())
24 {
25 switch (m_severity)
26 {
27 default:
28 case CStatusMessage::SeverityDebug: return m_logger.debug();
29 case CStatusMessage::SeverityInfo: return m_logger.info();
30 case CStatusMessage::SeverityWarning: return m_logger.warning();
31 case CStatusMessage::SeverityError: return m_logger.critical();
32 }
33 }
34 else
35 {
36 switch (m_severity)
37 {
38 default:
39 case CStatusMessage::SeverityDebug: return m_logger.debug(QLoggingCategory(category.constData()));
40 case CStatusMessage::SeverityInfo: return m_logger.info(QLoggingCategory(category.constData()));
41 case CStatusMessage::SeverityWarning: return m_logger.warning(QLoggingCategory(category.constData()));
42 case CStatusMessage::SeverityError: return m_logger.critical(QLoggingCategory(category.constData()));
43 }
44 }
45 }
46
47 void CLogMessage::preformatted(const CStatusMessage &statusMessage)
48 {
49 if (statusMessage.isEmpty())
50 {
51 return;
52 } // just skip empty messages
53 CLogMessage(statusMessage.getCategories()).log(statusMessage.getSeverity(), u"%1")
54 << statusMessage.getMessage();
55 }
56
57 void CLogMessage::preformatted(const CStatusMessageList &statusMessages)
58 {
59 for (const auto &msg : statusMessages)
60 {
61 preformatted(msg);
62 }
63 }
64} // namespace swift::misc
65
CLogMessage()=default
Construct a message with the "uncategorized" category.
Free functions in swift::misc.
const char * constData() const const