├── .clang_complete ├── .gitignore ├── Doxyfile ├── README.md ├── doc ├── CSVLogger_8cpp.html ├── CSVLogger_8cpp__incl.map ├── CSVLogger_8cpp__incl.md5 ├── CSVLogger_8cpp__incl.png ├── CSVLogger_8h.html ├── CSVLogger_8h__dep__incl.map ├── CSVLogger_8h__dep__incl.md5 ├── CSVLogger_8h__dep__incl.png ├── CSVLogger_8h__incl.map ├── CSVLogger_8h__incl.md5 ├── CSVLogger_8h__incl.png ├── CSVLogger_8h_source.html ├── LoggerPlugin_8cpp.html ├── LoggerPlugin_8cpp__incl.map ├── LoggerPlugin_8cpp__incl.md5 ├── LoggerPlugin_8cpp__incl.png ├── LoggerPlugin_8h.html ├── LoggerPlugin_8h__dep__incl.map ├── LoggerPlugin_8h__dep__incl.md5 ├── LoggerPlugin_8h__dep__incl.png ├── LoggerPlugin_8h__incl.map ├── LoggerPlugin_8h__incl.md5 ├── LoggerPlugin_8h__incl.png ├── LoggerPlugin_8h_source.html ├── LoggerUtil_8cpp.html ├── LoggerUtil_8cpp__incl.map ├── LoggerUtil_8cpp__incl.md5 ├── LoggerUtil_8cpp__incl.png ├── LoggerUtil_8h.html ├── LoggerUtil_8h__dep__incl.map ├── LoggerUtil_8h__dep__incl.md5 ├── LoggerUtil_8h__dep__incl.png ├── LoggerUtil_8h__incl.map ├── LoggerUtil_8h__incl.md5 ├── LoggerUtil_8h__incl.png ├── LoggerUtil_8h_source.html ├── SimpleLogger_8cpp.html ├── SimpleLogger_8cpp__incl.map ├── SimpleLogger_8cpp__incl.md5 ├── SimpleLogger_8cpp__incl.png ├── SimpleLogger_8h.html ├── SimpleLogger_8h__dep__incl.map ├── SimpleLogger_8h__dep__incl.md5 ├── SimpleLogger_8h__dep__incl.png ├── SimpleLogger_8h__incl.map ├── SimpleLogger_8h__incl.md5 ├── SimpleLogger_8h__incl.png ├── SimpleLogger_8h_source.html ├── annotated.html ├── annotated_dup.js ├── bc_s.png ├── bdwn.png ├── classQMLLogger_1_1CSVLogger-members.html ├── classQMLLogger_1_1CSVLogger.html ├── classQMLLogger_1_1CSVLogger.js ├── classQMLLogger_1_1CSVLogger__inherit__graph.map ├── classQMLLogger_1_1CSVLogger__inherit__graph.md5 ├── classQMLLogger_1_1CSVLogger__inherit__graph.png ├── classQMLLogger_1_1LoggerUtil-members.html ├── classQMLLogger_1_1LoggerUtil.html ├── classQMLLogger_1_1LoggerUtil.js ├── classQMLLogger_1_1LoggerUtil__inherit__graph.map ├── classQMLLogger_1_1LoggerUtil__inherit__graph.md5 ├── classQMLLogger_1_1LoggerUtil__inherit__graph.png ├── classQMLLogger_1_1SimpleLogger-members.html ├── classQMLLogger_1_1SimpleLogger.html ├── classQMLLogger_1_1SimpleLogger.js ├── classQMLLogger_1_1SimpleLogger__inherit__graph.map ├── classQMLLogger_1_1SimpleLogger__inherit__graph.md5 ├── classQMLLogger_1_1SimpleLogger__inherit__graph.png ├── classes.html ├── closed.png ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html ├── dir_68267d1309a1af8e8297ef4c3efbcdba.js ├── doc.png ├── doxygen.css ├── doxygen.png ├── dynsections.js ├── files.html ├── files.js ├── folderclosed.png ├── folderopen.png ├── functions.html ├── functions_func.html ├── functions_prop.html ├── graph_legend.html ├── graph_legend.md5 ├── graph_legend.png ├── hierarchy.html ├── hierarchy.js ├── index.html ├── inherit_graph_0.map ├── inherit_graph_0.md5 ├── inherit_graph_0.png ├── inherits.html ├── jquery.js ├── menu.js ├── menudata.js ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── navtree.css ├── navtree.js ├── navtreedata.js ├── navtreeindex0.js ├── open.png ├── resize.js ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── classes_2.html │ ├── classes_2.js │ ├── close.png │ ├── files_0.html │ ├── files_0.js │ ├── files_1.html │ ├── files_1.js │ ├── files_2.html │ ├── files_2.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── mag_sel.png │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── properties_0.html │ ├── properties_0.js │ ├── properties_1.html │ ├── properties_1.js │ ├── properties_2.html │ ├── properties_2.js │ ├── properties_3.html │ ├── properties_3.js │ ├── properties_4.html │ ├── properties_4.js │ ├── properties_5.html │ ├── properties_5.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── searchdata.js ├── splitbar.png ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_b.png ├── tab_h.png ├── tab_s.png └── tabs.css ├── qml-logger.pro ├── qmldir ├── samples ├── csv-logger-button │ ├── README.md │ ├── android │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── res │ │ │ └── values │ │ │ └── libs.xml │ ├── csv-logger-button.pro │ ├── qml.qrc │ └── src │ │ ├── main.cpp │ │ └── main.qml └── simple-logger-button │ ├── README.md │ ├── android │ ├── AndroidManifest.xml │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── res │ │ └── values │ │ └── libs.xml │ ├── qml.qrc │ ├── simple-logger-button.pro │ └── src │ ├── main.cpp │ └── main.qml └── src ├── CSVLogger.cpp ├── CSVLogger.h ├── LoggerPlugin.cpp ├── LoggerPlugin.h ├── LoggerUtil.cpp ├── LoggerUtil.h ├── SimpleLogger.cpp └── SimpleLogger.h /.clang_complete: -------------------------------------------------------------------------------- 1 | -I/opt/Qt/5.10.0/gcc_64/include 2 | -I/opt/Qt/5.10.0/gcc_64/include/QtQuick 3 | -I/opt/Qt/5.10.0/gcc_64/include/QtGui 4 | -I/opt/Qt/5.10.0/gcc_64/include/QtQml 5 | -I/opt/Qt/5.10.0/gcc_64/include/QtNetwork 6 | -I/opt/Qt/5.10.0/gcc_64/include/QtBluetooth 7 | -I/opt/Qt/5.10.0/gcc_64/include/QtCore 8 | -I/opt/Qt/5.10.0/android_armv7/include/QtAndroidExtras 9 | -Iinclude/ 10 | -fPIE 11 | -std=c++11 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #Temp build files 2 | build*/ 3 | xml/ 4 | 5 | #Temp QT files 6 | *.user 7 | 8 | #Annoying files 9 | *~ 10 | 11 | #Ubuntu ignores 12 | .directory 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | qml-logger 2 | ========== 3 | 4 | qml-logger is a file logging plugin that enables logging data to given file from QML. It is tested with Qt 5.10.1 on the 5 | following: 6 | 7 | - Ubuntu 17.10 8 | - macOS 10.13.3 with Xcode 9.3 9 | - Windows 10 (UWP x64 (MSVC 2017)) with Visual Studio 2017 Community (with `Universal Windows Platform development` and `C++ Universal Windows Platform tools`) 10 | - Android 7.1.2 with Ubuntu 17.10 host with Android API 23, Android SDK Tools 25.2.5 and Android NDK r10e 11 | 12 | See [samples/](samples/) for example uses. 13 | 14 | See [doc/index.html](doc/index.html) for the API. 15 | 16 | build [Linux & macOS] 17 | --------------------- 18 | 19 | ``` 20 | $ mkdir build && cd build 21 | $ qt-install-dir/qt-version/target-platform/bin/qmake .. 22 | $ make install 23 | ``` 24 | 25 | This will install the QML plugin inside the Qt sysroot, which you must have write access to. **Be aware that this is not a sandboxed installation.** 26 | 27 | build [Android] 28 | --------------- 29 | 30 | ``` 31 | $ export ANDROID_NDK_ROOT=/path-to-android-ndk/ 32 | $ mkdir build && cd build 33 | $ qt-install-dir/qt-version/target-platform/bin/qmake .. 34 | $ make install 35 | ``` 36 | 37 | This will install the QML plugin inside the Qt sysroot, which you must have write access to. **Be aware that this is not a sandboxed installation.** 38 | 39 | build [Windows] 40 | --------------- 41 | 42 | Run the following in the `Developer Command Prompt for VS 2017`: 43 | 44 | ``` 45 | > "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 46 | > mkdir build 47 | > cd build 48 | > qt-install-root\qt-version\target-platform\bin\qmake .. 49 | > nmake 50 | > nmake install 51 | ``` 52 | 53 | This will install the QML plugin inside the Qt sysroot, which you must have write access to. **Be aware that this is not a sandboxed installation.** 54 | 55 | build documentation 56 | ------------------- 57 | 58 | Install dependencies: 59 | ``` 60 | $ apt install doxygen doxyqml 61 | ``` 62 | 63 | Then, generate the documentation: 64 | ``` 65 | $ doxygen 66 | ``` 67 | -------------------------------------------------------------------------------- /doc/CSVLogger_8cpp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 |
31 | qml-logger
32 |
33 | |
34 |
Source for a QML CSV file logger. 88 | More...
89 |#include "LoggerUtil.h"
#include "CSVLogger.h"
#include <QDir>
#include <QStandardPaths>
#include <QDateTime>
#include <QSysInfo>
#include <QNetworkInterface>
#include <QBluetoothLocalDevice>
Source for a QML CSV file logger.
108 | 109 |
31 | qml-logger
32 |
33 | |
34 |
Object that exposes the Logger plugin components as QML objects. 88 | More...
89 |#include <QQmlExtensionPlugin>
#include <qqml.h>
Go to the source code of this file.
108 |Object that exposes the Logger plugin components as QML objects.
110 | 111 |
31 | qml-logger
32 |
33 | |
34 |
Logger utilities header. 88 | More...
89 |#include "LoggerUtil.h"
#include <QSysInfo>
#include <QBluetoothLocalDevice>
#include <QNetworkInterface>
Logger utilities header.
103 | 104 |
31 | qml-logger
32 |
33 | |
34 |
Source for a simple line-by-line logger. 88 | More...
89 |#include "SimpleLogger.h"
#include <QDir>
#include <QStandardPaths>
#include <QDateTime>
#include "LoggerUtil.h"
Source for a simple line-by-line logger.
105 | 106 |
31 | qml-logger
32 |
33 | |
34 |
▼NQMLLogger | |
CCSVLogger | Utility to log CSV data line by line with optional timestamp |
CLoggerUtil | Logger utilities |
CSimpleLogger | Utility to log strings line by line with optional timestamp and unique device ID |
31 | qml-logger
32 |
33 | |
34 |
This is the complete list of members for QMLLogger::LoggerUtil, including all inherited members.
88 |uniqueDeviceID | QMLLogger::LoggerUtil |
31 | qml-logger
32 |
33 | |
34 |
This is the complete list of members for QMLLogger::SimpleLogger, including all inherited members.
88 |filename | QMLLogger::SimpleLogger | |
log(const QString &data) | QMLLogger::SimpleLogger | slot |
logDeviceInfo | QMLLogger::SimpleLogger | |
logMillis | QMLLogger::SimpleLogger | |
logTime | QMLLogger::SimpleLogger | |
toConsole | QMLLogger::SimpleLogger |
31 | qml-logger
32 |
33 | |
34 |
|
|
| ||||
CSVLogger (QMLLogger) | LoggerUtil (QMLLogger) | SimpleLogger (QMLLogger) | ||||
31 | qml-logger
32 |
33 | |
34 |
31 | qml-logger
32 |
33 | |
34 |
31 | qml-logger
32 |
33 | |
34 |
▼CQQuickItem | |
CQMLLogger::CSVLogger | Utility to log CSV data line by line with optional timestamp |
CQMLLogger::LoggerUtil | Logger utilities |
CQMLLogger::SimpleLogger | Utility to log strings line by line with optional timestamp and unique device ID |
31 | qml-logger
32 |
33 | |
34 |
qml-logger is a file logging plugin that enables logging data to given file from QML. See README.md for more information.
87 |
31 | qml-logger
32 |
33 | |
34 |
![]() |