├── .gitignore ├── Android ├── .idea │ ├── Android.iml │ ├── modules.xml │ ├── vcs.xml │ └── workspace.xml └── MXLogger │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── .name │ ├── compiler.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── vcs.xml │ └── workspace.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── mxlogger │ ├── .gitignore │ ├── CMakeLists.txt │ ├── build.gradle │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ ├── secring.gpg │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── dongjiayi │ │ │ └── mxlogger │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── cpp │ │ │ ├── flutter-bridge.cpp │ │ │ └── navtive-bridge.cpp │ │ └── java │ │ │ └── com │ │ │ └── dongjiayi │ │ │ └── mxlogger │ │ │ ├── MXLogger.java │ │ │ └── MXStoragePolicyType.java │ │ └── test │ │ └── java │ │ └── com │ │ └── dongjiayi │ │ └── mxlogger │ │ └── ExampleUnitTest.java │ ├── mxloggerdemo │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── dongjiayi │ │ │ └── mxloggerdemo │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── dongjiayi │ │ │ │ └── mxloggerdemo │ │ │ │ ├── FirstFragment.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MyApplication.java │ │ │ │ └── SecondFragment.java │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── content_main.xml │ │ │ ├── fragment_first.xml │ │ │ └── fragment_second.xml │ │ │ ├── menu │ │ │ └── menu_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── navigation │ │ │ └── nav_graph.xml │ │ │ ├── values-land │ │ │ └── dimens.xml │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ ├── values-w1240dp │ │ │ └── dimens.xml │ │ │ ├── values-w600dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── dongjiayi │ │ └── mxloggerdemo │ │ └── ExampleUnitTest.java │ ├── publish.gradle │ ├── publish2.gradle │ ├── secring3.gpg │ └── settings.gradle ├── Core ├── CMakeLists.txt ├── MXLoggerCore.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── dongjiayi.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── dongjiayi.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── aes │ ├── aes_crypt.cpp │ ├── aes_crypt.hpp │ └── openssl │ │ ├── openssl_aes-armv4.S │ │ ├── openssl_aes.h │ │ ├── openssl_aes_core.cpp │ │ ├── openssl_aes_locl.h │ │ ├── openssl_aesv8-armx.S │ │ ├── openssl_arm_arch.h │ │ └── openssl_cfb128.cpp ├── build.sh ├── debug_log.cpp ├── debug_log.hpp ├── flatbuffers │ ├── base.h │ ├── flatbuffers.h │ └── stl_emulation.h ├── json │ ├── cJSON.c │ └── cJSON.h ├── log_enum.h ├── log_msg.cpp ├── log_msg.hpp ├── log_serialize.h ├── logger_os.cpp ├── logger_os.hpp ├── md5 │ ├── md5.c │ └── md5.h ├── mxlogger.cpp ├── mxlogger.hpp ├── mxlogger_console.cpp ├── mxlogger_console.hpp ├── mxlogger_file_util.hpp ├── mxlogger_helper.hpp ├── mxlogger_util.cpp ├── mxlogger_util.hpp └── sink │ ├── base_file_sink.cpp │ ├── base_file_sink.hpp │ ├── mmap_sink.cpp │ ├── mmap_sink.hpp │ ├── sink.cpp │ ├── sink.hpp │ ├── windows_sink.cpp │ └── windows_sink.hpp ├── LICENSE.TXT ├── MXLogger.podspec ├── MXLoggerCore.podspec ├── README.md ├── README_CN.md ├── flatc ├── flutter_mxlogger ├── .gitignore ├── .metadata ├── CHANGELOG.md ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ ├── settings.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── coderdjy │ │ └── mxlogger │ │ └── FlutterMxloggerPlugin.java ├── example │ ├── .gitignore │ ├── .metadata │ ├── README.md │ ├── analysis_options.yaml │ ├── android │ │ ├── .gitignore │ │ ├── app │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ ├── debug │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── example │ │ │ │ │ │ └── flutter_mxlogger_example │ │ │ │ │ │ └── MainActivity.java │ │ │ │ └── res │ │ │ │ │ ├── drawable-v21 │ │ │ │ │ └── launch_background.xml │ │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── values-night │ │ │ │ │ └── styles.xml │ │ │ │ │ └── values │ │ │ │ │ └── styles.xml │ │ │ │ └── profile │ │ │ │ └── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ └── settings.gradle │ ├── ios │ │ ├── .gitignore │ │ ├── Flutter │ │ │ ├── AppFrameworkInfo.plist │ │ │ ├── Debug.xcconfig │ │ │ └── Release.xcconfig │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── Runner.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── Runner.xcscheme │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── Runner │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ └── LaunchImage.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ └── README.md │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ └── main.m │ ├── lib │ │ ├── log_page.dart │ │ └── main.dart │ ├── pubspec.yaml │ └── test │ │ └── widget_test.dart ├── flutter_mxlogger.iml ├── ios │ ├── .gitignore │ ├── Assets │ │ └── .gitkeep │ ├── Classes │ │ ├── FlutterMxloggerPlugin.h │ │ ├── FlutterMxloggerPlugin.mm │ │ └── flutter-bridge.mm │ └── flutter_mxlogger.podspec ├── lib │ ├── flutter_mxlogger.dart │ └── src │ │ ├── flutter_mxlogger.dart │ │ ├── flutter_mxlogger_web.dart │ │ └── flutter_none.dart ├── pub.sh ├── pubspec.yaml └── test │ └── flutter_mxlogger_test.dart ├── iOS ├── .gitignore ├── MXLogger │ ├── MXLogger.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── xcuserdata │ │ │ │ └── dongjiayi.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── dongjiayi.xcuserdatad │ │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ ├── MXLogger │ │ ├── Info.plist │ │ ├── MXLogger.h │ │ └── MXLogger.mm │ └── MXLoggerTests │ │ ├── Info.plist │ │ └── MXLoggerTests.m └── MXLoggerDemo │ ├── MXLoggerDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcuserdata │ │ │ └── dongjiayi.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── MXLoggerDemo.xcscheme │ └── xcuserdata │ │ └── dongjiayi.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ └── xcschememanagement.plist │ ├── MXLoggerDemo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LogListViewController.h │ ├── LogListViewController.m │ ├── LogListViewController.xib │ ├── LogViewController.h │ ├── LogViewController.m │ ├── LogViewController.xib │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m │ ├── MXLoggerDemoTests │ ├── Info.plist │ └── MXLoggerDemoTests.m │ └── MXLoggerDemoUITests │ ├── Info.plist │ └── MXLoggerDemoUITests.m ├── icon ├── 20230210103021.jpg ├── MX 主LOGO 2000x1500.png ├── MX 白色LOGO 2000x1500.png ├── MX 黑色LOGO 2000x1500.png ├── circle.png ├── haoshi.jpg ├── jiegoutu.jpg ├── logo.png ├── logo_400.png ├── logo_白色.png ├── logo_黑色.png ├── mx_1.jpg ├── mx_2.jpg ├── mx_3.jpg ├── mx_4.jpg ├── mxlogger_ memory.jpg ├── mxlogger_analyzer_desktop.mp4 └── mxlogger_analyzer_pckage.mp4 ├── log_msg.fbs ├── mxlogger.sh ├── mxlogger_analyzer.dmg ├── mxlogger_analyzer ├── .gitignore ├── .metadata ├── README.md ├── analysis_options.yaml ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── mxlogger_analyzer │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable-v21 │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-night │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── assets │ └── images │ │ ├── circle.png │ │ ├── logo.png │ │ └── text.png ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── Podfile.lock │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ ├── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ └── LaunchImage.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ └── README.md │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h │ └── RunnerTests │ │ └── RunnerTests.swift ├── lib │ ├── main.dart │ ├── main_desktop.dart │ ├── main_package.dart │ ├── page │ │ ├── desktop │ │ │ ├── desktop_page.dart │ │ │ └── drop_target_view.dart │ │ ├── setting │ │ │ └── setting_page.dart │ │ └── view │ │ │ └── crypt_dialog.dart │ ├── plug │ │ └── flutter_side_menu │ │ │ ├── flutter_side_menu.dart │ │ │ └── src │ │ │ ├── component │ │ │ ├── resizer.dart │ │ │ └── resizer_toggle.dart │ │ │ ├── data │ │ │ ├── resizer_data.dart │ │ │ ├── resizer_toggle_data.dart │ │ │ ├── side_menu_builder_data.dart │ │ │ ├── side_menu_data.dart │ │ │ └── side_menu_item_data.dart │ │ │ ├── item │ │ │ ├── export.dart │ │ │ ├── side_menu_item_divider.dart │ │ │ ├── side_menu_item_tile.dart │ │ │ └── side_menu_item_title.dart │ │ │ ├── side_menu.dart │ │ │ ├── side_menu_body.dart │ │ │ ├── side_menu_controller.dart │ │ │ ├── side_menu_mode.dart │ │ │ ├── side_menu_position.dart │ │ │ ├── side_menu_priority.dart │ │ │ ├── side_menu_width_mixin.dart │ │ │ └── utils │ │ │ ├── constants.dart │ │ │ ├── device_screen_type.dart │ │ │ └── utils.dart │ ├── provider │ │ └── mxlogger_provider.dart │ └── storage │ │ └── mxlogger_storage.dart ├── linux │ ├── .gitignore │ ├── CMakeLists.txt │ ├── flutter │ │ ├── CMakeLists.txt │ │ ├── generated_plugin_registrant.cc │ │ ├── generated_plugin_registrant.h │ │ └── generated_plugins.cmake │ ├── main.cc │ ├── my_application.cc │ └── my_application.h ├── macos │ ├── .gitignore │ ├── Flutter │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Podfile │ ├── Podfile.lock │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── app_icon_1024.png │ │ │ │ ├── app_icon_128.png │ │ │ │ ├── app_icon_16.png │ │ │ │ ├── app_icon_256.png │ │ │ │ ├── app_icon_32.png │ │ │ │ ├── app_icon_512.png │ │ │ │ ├── app_icon_64.png │ │ │ │ ├── logo-1.png │ │ │ │ ├── logo-2.png │ │ │ │ ├── logo-3.png │ │ │ │ ├── logo-4.png │ │ │ │ ├── logo-5.png │ │ │ │ ├── logo-6.png │ │ │ │ ├── logo-7.png │ │ │ │ ├── logo-8.png │ │ │ │ ├── logo-9.png │ │ │ │ └── logo.png │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ └── MainMenu.xib │ │ ├── Configs │ │ │ ├── AppInfo.xcconfig │ │ │ ├── Debug.xcconfig │ │ │ ├── Release.xcconfig │ │ │ └── Warnings.xcconfig │ │ ├── DebugProfile.entitlements │ │ ├── Info.plist │ │ ├── MainFlutterWindow.swift │ │ ├── Release.entitlements │ │ ├── Runner-Bridging-Header.h │ │ ├── empty.h │ │ └── empty.m │ └── RunnerTests │ │ └── RunnerTests.swift ├── mxlogger_analyzer_lib │ ├── .gitignore │ ├── .metadata │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── analysis_options.yaml │ ├── assets │ │ └── images │ │ │ └── logo.png │ ├── lib │ │ ├── mxlogger_analyzer_lib.dart │ │ └── src │ │ │ ├── analyzer_data │ │ │ ├── analyzer_binary.dart │ │ │ ├── analyzer_database.dart │ │ │ └── log_serialize.dart │ │ │ ├── component │ │ │ ├── mxlogger_button.dart │ │ │ ├── mxlogger_text.dart │ │ │ └── mxlogger_textfield.dart │ │ │ ├── dependencies │ │ │ ├── aes_crypt │ │ │ │ ├── aes_crypt_null_safe.dart │ │ │ │ └── src │ │ │ │ │ ├── aes.dart │ │ │ │ │ ├── aescrypt.dart │ │ │ │ │ ├── cryptor.dart │ │ │ │ │ ├── exceptions.dart │ │ │ │ │ └── extentions.dart │ │ │ └── flat_buffers │ │ │ │ ├── flat_buffers.dart │ │ │ │ ├── flex_buffers.dart │ │ │ │ └── src │ │ │ │ ├── builder.dart │ │ │ │ ├── reference.dart │ │ │ │ └── types.dart │ │ │ ├── extends │ │ │ └── async_extends.dart │ │ │ ├── level │ │ │ └── mx_level.dart │ │ │ ├── mxdebug_page.dart │ │ │ ├── page │ │ │ └── debug_page │ │ │ │ ├── debug_drawer.dart │ │ │ │ ├── debug_page.dart │ │ │ │ └── menu_list_state.dart │ │ │ ├── provider │ │ │ ├── level_list_state.dart │ │ │ ├── mxlogger_provider.dart │ │ │ └── mxlogger_repository.dart │ │ │ ├── screen │ │ │ ├── change_log_screen │ │ │ │ └── change_log_screen.dart │ │ │ ├── detail_screen │ │ │ │ ├── mxlogger_detail_screen.dart │ │ │ │ └── view │ │ │ │ │ └── flutter_json_viewer.dart │ │ │ └── home_screen │ │ │ │ ├── home_screen.dart │ │ │ │ ├── log_model.dart │ │ │ │ ├── search_dialog.dart │ │ │ │ └── widget │ │ │ │ ├── home_log_list_view.dart │ │ │ │ ├── search_app_bar.dart │ │ │ │ └── search_result_wrap.dart │ │ │ └── theme │ │ │ └── mx_theme.dart │ ├── pub.sh │ ├── pubspec.yaml │ └── test │ │ └── mxlogger_analyzer_lib_test.dart ├── pub.sh ├── pubspec.lock ├── pubspec.yaml ├── test │ └── widget_test.dart ├── web │ ├── favicon.png │ ├── icons │ │ ├── Icon-192.png │ │ ├── Icon-512.png │ │ ├── Icon-maskable-192.png │ │ └── Icon-maskable-512.png │ ├── index.html │ └── manifest.json └── windows │ ├── .gitignore │ ├── CMakeLists.txt │ ├── flutter │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake │ └── runner │ ├── CMakeLists.txt │ ├── Runner.rc │ ├── flutter_window.cpp │ ├── flutter_window.h │ ├── main.cpp │ ├── resource.h │ ├── resources │ └── app_icon.ico │ ├── runner.exe.manifest │ ├── utils.cpp │ ├── utils.h │ ├── win32_window.cpp │ └── win32_window.h ├── mxlogger_core.sh └── 性能测试demo.zip /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .dart_tool/ 3 | 4 | .packages 5 | .pub/ 6 | 7 | build/ 8 | -------------------------------------------------------------------------------- /Android/.idea/Android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Android/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Android/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Android/MXLogger/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /Android/MXLogger/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /Android/MXLogger/.idea/.name: -------------------------------------------------------------------------------- 1 | mxloggerdemo -------------------------------------------------------------------------------- /Android/MXLogger/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Android/MXLogger/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /Android/MXLogger/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | -------------------------------------------------------------------------------- /Android/MXLogger/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Android/MXLogger/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | ext { 4 | kotlin_version = "1.6.10" 5 | dokka_version = '1.4.10.2' 6 | } 7 | repositories { 8 | google() 9 | mavenCentral() 10 | } 11 | dependencies { 12 | classpath "com.android.tools.build:gradle:7.0.3" 13 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 14 | 15 | classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version" 16 | 17 | // NOTE: Do not place your application dependencies here; they belong 18 | // in the individual module build.gradle files 19 | } 20 | } 21 | 22 | task clean(type: Delete) { 23 | delete rootProject.buildDir 24 | } -------------------------------------------------------------------------------- /Android/MXLogger/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app"s APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true -------------------------------------------------------------------------------- /Android/MXLogger/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coder-dongjiayi/MXLogger/33cb8a68e5bcbf69dd91a3bc4af696825b7c4c46/Android/MXLogger/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Android/MXLogger/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Apr 07 14:37:27 CST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # For more information about using CMake with Android Studio, read the 2 | # documentation: https://d.android.com/studio/projects/add-native-code.html 3 | 4 | # Sets the minimum version of CMake required to build the native library. 5 | 6 | cmake_minimum_required(VERSION 3.10.0) 7 | 8 | 9 | 10 | project("mxlogger") 11 | 12 | add_subdirectory(../../../Core Core) 13 | 14 | add_library( 15 | mxlogger 16 | SHARED 17 | src/main/cpp/navtive-bridge.cpp 18 | src/main/cpp/flutter-bridge.cpp 19 | ) 20 | 21 | set_target_properties(mxlogger PROPERTIES 22 | CXX_STANDARD 17 23 | CXX_EXTENSIONS OFF 24 | POSITION_INDEPENDENT_CODE ON 25 | ) 26 | find_library( 27 | log-lib 28 | log ) 29 | 30 | 31 | target_link_libraries( 32 | mxlogger 33 | MXLoggerCore 34 | ${log-lib} ) -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coder-dongjiayi/MXLogger/33cb8a68e5bcbf69dd91a3bc4af696825b7c4c46/Android/MXLogger/mxlogger/consumer-rules.pro -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Keep all native methods, their classes and any classes in their descriptors 2 | -keepclasseswithmembers,includedescriptorclasses class com.dongjiayi.mxlogger.** { 3 | native ; 4 | long nativeHandle; 5 | private static *** defaultDiskCacheDirectory(***); 6 | private static *** userCacheDirectory(***); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/src/androidTest/java/com/dongjiayi/mxlogger/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.dongjiayi.mxlogger; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.dongjiayi.mxlogger.test", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/src/main/java/com/dongjiayi/mxlogger/MXStoragePolicyType.java: -------------------------------------------------------------------------------- 1 | package com.dongjiayi.mxlogger; 2 | 3 | public enum MXStoragePolicyType { 4 | /** 5 | * 按天存储 对应文件名: 2023-01-11_filename.mx 6 | */ 7 | YYYY_MM_DD, 8 | /** 9 | * 按小时存储 对应文件名: 2023-01-11-15_filename.mx 10 | */ 11 | YYYY_MM_DD_HH, 12 | /** 13 | * 按周存储 对应文件名: 2023-01-02w_filename.mx(02w是指一年中的第2周) 14 | */ 15 | YYYY_WW, 16 | /** 17 | * 按月存储 对应文件名: 2023-01_filename.mx 18 | */ 19 | YYYY_MM 20 | } 21 | -------------------------------------------------------------------------------- /Android/MXLogger/mxlogger/src/test/java/com/dongjiayi/mxlogger/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.dongjiayi.mxlogger; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/src/androidTest/java/com/dongjiayi/mxloggerdemo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.dongjiayi.mxloggerdemo; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.dongjiayi.mxloggerdemo", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/src/main/java/com/dongjiayi/mxloggerdemo/MyApplication.java: -------------------------------------------------------------------------------- 1 | package com.dongjiayi.mxloggerdemo; 2 | 3 | import android.app.Application; 4 | 5 | import com.dongjiayi.mxlogger.MXLogger; 6 | 7 | public class MyApplication extends Application { 8 | @Override 9 | public void onCreate() { 10 | super.onCreate(); 11 | 12 | } 13 | 14 | @Override 15 | public void onTerminate() { 16 | super.onTerminate(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/src/main/java/com/dongjiayi/mxloggerdemo/SecondFragment.java: -------------------------------------------------------------------------------- 1 | package com.dongjiayi.mxloggerdemo; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | 8 | import androidx.annotation.NonNull; 9 | import androidx.fragment.app.Fragment; 10 | import androidx.navigation.fragment.NavHostFragment; 11 | 12 | import com.dongjiayi.mxloggerdemo.databinding.FragmentSecondBinding; 13 | 14 | public class SecondFragment extends Fragment { 15 | 16 | private FragmentSecondBinding binding; 17 | 18 | @Override 19 | public View onCreateView( 20 | LayoutInflater inflater, ViewGroup container, 21 | Bundle savedInstanceState 22 | ) { 23 | 24 | binding = FragmentSecondBinding.inflate(inflater, container, false); 25 | return binding.getRoot(); 26 | 27 | } 28 | 29 | public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { 30 | super.onViewCreated(view, savedInstanceState); 31 | 32 | binding.buttonSecond.setOnClickListener(new View.OnClickListener() { 33 | @Override 34 | public void onClick(View view) { 35 | NavHostFragment.findNavController(SecondFragment.this) 36 | .navigate(R.id.action_SecondFragment_to_FirstFragment); 37 | } 38 | }); 39 | } 40 | 41 | @Override 42 | public void onDestroyView() { 43 | super.onDestroyView(); 44 | binding = null; 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | -------------------------------------------------------------------------------- /Android/MXLogger/mxloggerdemo/src/main/res/layout/fragment_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 |