Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qohoslogger.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
<
QtCore
/
private
/
qohoslogger_p
.
h
>
5
#
include
<
array
>
6
#
include
<
cstdio
>
7
#
include
<
cstring
>
8
9
QT_BEGIN_NAMESPACE
10
11
Q_LOGGING_CATEGORY
(QtForOhos,
"qt.ohos"
, QtDebugMsg)
12
13
void
qOhosLogMessage
(LogLevel logLevel,
const
char
*tag,
const
char
*message)
14
{
15
OH_LOG_Print(LOG_APP, logLevel, LOG_DOMAIN, tag,
"%{public}s"
, message);
16
}
17
18
void
qOhosVPrintf
(LogLevel logLevel,
const
char
*format, std::va_list ap)
19
{
20
std
::array<
char
, 4096> entryBuffer;
21
22
int
prefixVsnprintfRes = std::snprintf(
23
entryBuffer.data(), entryBuffer.size(),
24
"[QtForOhos]: T: 0x%llx, M: "
,
25
reinterpret_cast
<
unsigned
long
long
>(QThread::currentThreadId()));
26
27
Q_ASSERT(prefixVsnprintfRes >= 0);
28
29
auto
prefixSize =
std
::min(
static_cast
<size_t>(prefixVsnprintfRes), entryBuffer.size() - 1);
30
31
auto
*msgBuffer = entryBuffer.data() + prefixSize;
32
auto
msgBufferSize = entryBuffer.size() - prefixSize;
33
34
int
vsnprintfRes = std::vsnprintf(msgBuffer, msgBufferSize, format, ap);
35
if
(vsnprintfRes < 0) {
36
std
::snprintf(msgBuffer, msgBufferSize,
"[error formatting log msg: %s]"
, format);
37
}
else
if
(
static_cast
<
unsigned
>(vsnprintfRes) >= msgBufferSize) {
38
constexpr
auto
*ellipsis =
"..."
;
39
std
::strcpy(msgBuffer + msgBufferSize - (
std
::strlen(ellipsis) + 1), ellipsis);
40
}
41
42
qOhosLogMessage(logLevel,
"OHOS plugin"
, entryBuffer.data());
43
}
44
45
QT_END_NAMESPACE
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
Q_LOGGING_CATEGORY
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
qOhosLogMessage
QT_BEGIN_NAMESPACE void qOhosLogMessage(LogLevel logLevel, const char *tag, const char *message)
Definition
qohoslogger.cpp:13
qOhosVPrintf
void qOhosVPrintf(LogLevel logLevel, const char *format, std::va_list ap)
Definition
qohoslogger.cpp:18
qtbase
src
corelib
platform
ohos
qohoslogger.cpp
Generated on
for Qt by
1.18.0