ഡയഗ്നോസ്റ്റിക്സ്, ലോഗുകൾ & ബഗ് റിപ്പോർട്ടുകൾ
എല്ലാ Tracelet ആപ്പും SDK ഉപകരണത്തിൽ എന്താണ് ചെയ്യുന്നതെന്ന് രേഖപ്പെടുത്തുന്നു - അനുമതികൾ,
ട്രാക്കിംഗ് അവസ്ഥ, സെൻസർ ലഭ്യത, ഒരു റോളിംഗ് ലോഗ്. ദി
tracelet_doctor പാക്കേജ് അതെല്ലാം ഒരു ആക്കി മാറ്റുന്നു
ഒറ്റ-ടാപ്പ് ഡയഗ്നോസ്റ്റിക് സ്ക്രീനും ഒരു പകർത്തുക-ഒട്ടിക്കൽ ബഗ് റിപ്പോർട്ടും, അങ്ങനെ എപ്പോൾ
എന്തോ തെറ്റായി തോന്നുന്നു നിങ്ങൾക്ക് (അല്ലെങ്കിൽ നിങ്ങളുടെ ഉപയോക്താക്കൾക്ക്) സംഭവിച്ചത് കൃത്യമായി പകർത്താനാകും.
3.3.0-ൽ പുതിയത്: ഡോക്ടറുടെ പകർപ്പ് ബട്ടൺ ഇപ്പോൾ എല്ലാം ബണ്ടിൽ ചെയ്യുന്നു
(ആരോഗ്യം + കോൺഫിഗറേഷൻ + ലോഗുകൾ + ടെലിമാറ്റിക്സ്) ഒരൊറ്റ മാർക്ക്ഡൗൺ റിപ്പോർട്ടിലേക്ക്, ഒപ്പം
ഒരു പുതിയ Share ബട്ടൺ ഒരു .md ഫയലായി ഡൗൺലോഡ്/ഇമെയിൽ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. അവിടെയും എ
ലോഗ് വ്യൂവറിലെ ലോഗുകൾ പകർത്തുക ബട്ടൺ.
30 സെക്കൻഡ് പതിപ്പ്
tracelet_doctor ഒരു dev ഡിപൻഡൻസിയായി ചേർക്കുക (ഒരു സാധാരണ ഒന്നല്ല) - ഇതൊരു ഡീബഗ്ഗിംഗ് ആണ്
ടൂൾ, കൂടാതെ ഫ്ലട്ടർ റിലീസ് ബിൽഡുകളിൽ നിന്ന് ദേവ-ആശ്രിത പാക്കേജുകളെ ഒഴിവാക്കുന്നു:
flutter pub add dev:tracelet_doctorതുടർന്ന് kDebugMode-ന് പിന്നിലെ ഗാർഡ് ഉപയോഗം, അതിനാൽ അത് റിലീസ് ബിൽഡുകളിൽ നിന്ന് ട്രീ-ഷെക്ക് ചെയ്യപ്പെടും:
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:tracelet_doctor/tracelet_doctor.dart';
// Open the diagnostic screen from a debug menu, button, or shake gesture:
if (kDebugMode) {
TraceletDoctor.show(context);
}ഇത് ഒരു ഷീറ്റ് തുറക്കുന്നു:
- മുന്നറിയിപ്പുകൾ - ട്രാക്കിംഗിനെ ദോഷകരമായി ബാധിക്കുന്ന എന്തും (അനുമതി നിരസിച്ചു, പവർ സേവ് മോഡ്, ആക്രമണാത്മക OEM, കാര്യമായ ചലന സെൻസർ ഇല്ല, മോക്ക് ലൊക്കേഷനുകൾ…).
- അനുമതികൾ, ട്രാക്കിംഗ് നില, ബാറ്ററി & OEM, കോൺഫിഗറേഷൻ, സെൻസറുകൾ, ഡാറ്റാബേസ്.
- ഒരു ലോഗുകൾ കാണുക ബട്ടൺ (അവസാന 500 ലോഗ് ലൈനുകൾ).
- ബഗ് റിപ്പോർട്ട് പകർത്തുക കൂടാതെ ബഗ് റിപ്പോർട്ട് പങ്കിടുക ബട്ടണുകൾ മുകളിൽ-വലത് വശത്ത്.
ഒരു ബഗ് റിപ്പോർട്ട് ഫയൽ ചെയ്യുന്നു (നിങ്ങളുടെ ഉപയോക്താക്കൾക്കായി)
ഒരു ഉപയോക്താവ് ഒരു പ്രശ്നം റിപ്പോർട്ട് ചെയ്യുമ്പോൾ, അവരെ സഹായിക്കാനുള്ള ഏറ്റവും വേഗമേറിയ മാർഗം ഒരു ട്രേസ്ലെറ്റ് നേടുക എന്നതാണ് ബഗ് റിപ്പോർട്ട്. അവരോട് പറയുക:
- ട്രേസ്ലെറ്റ് ഡോക്ടർ സ്ക്രീൻ തുറക്കുക (നിങ്ങളുടെ ആപ്പിൽ എവിടെ വെച്ചാലും).
- മുകളിൽ വലതുവശത്തുള്ള പങ്കിടുക ഐക്കൺ (↗) - അല്ലെങ്കിൽ പകർത്തുക (⧉) - ടാപ്പ് ചെയ്യുക.
- ഒട്ടിക്കുക / അറ്റാച്ചുചെയ്യുക ഇത് നിങ്ങളുടെ പിന്തുണ ചാനലിലേക്കോ GitHub ലക്കത്തിലേക്കോ കൂടെ നിങ്ങളുടെ ഏതെങ്കിലും ആപ്പ് ലോഗുകൾക്കൊപ്പം.
റിപ്പോർട്ട് പ്ലെയിൻ മാർക്ക്ഡൗൺ ആണ്, ഇതുപോലെ കാണപ്പെടുന്നു:
# Tracelet Bug Report
_Generated by Tracelet Doctor at 2026-06-14T10:22:31Z (UTC)._
## Health check
| Field | Value |
|---|---|
| Platform | android |
| OS version | 14 |
| Manufacturer | Xiaomi |
| Aggressive OEM | true (rating 5/5) |
| Location permission | always |
| Power save mode | true |
...
**Warnings (2):**
- ⚠️ Power Save mode is ON — may throttle background tracking
- ⚠️ Device manufacturer may kill background apps
## Active configuration
```json
{ "geo": { "distanceFilter": 10.0, ... },
"http": { "url": "« തിരുത്തിയത്»", "തലക്കെട്ടുകൾ": "« തിരുത്തിയത്»", ... }}
```
## Telematics events (most recent)
| Type | Severity | Lat | Lng | Time | Synced |
...
## Logs (last 500)
2026-06-14T10:21:55Z [INFO] Tracking started (mode: location)
2026-06-14T10:22:03Z [WARN] Location accuracy degraded
...രഹസ്യങ്ങൾ സ്വയമേവ തിരുത്തപ്പെടുന്നു. കോൺഫിഗറേഷൻ ചേർക്കുന്നതിന് മുമ്പ്
റിപ്പോർട്ട്, ഒരു URL, തലക്കെട്ട്, പാരാമീറ്റർ, കീ, ടോക്കൺ അല്ലെങ്കിൽ പോലെ കാണപ്പെടുന്ന ഏതെങ്കിലും മൂല്യം
സർട്ടിഫിക്കറ്റിന് പകരം «redacted» എന്നാക്കി മാറ്റി. നിങ്ങളുടെ സമന്വയ URL, API കീകൾ, അംഗീകാരം എന്നിവ
തലക്കെട്ടുകൾ ഒരിക്കലും ഒട്ടിച്ച റിപ്പോർട്ടിൽ അവസാനിക്കുന്നില്ല. (മറ്റെല്ലാം - ദൂരം ഫിൽട്ടറുകൾ,
കൃത്യത, ഫീച്ചർ ടോഗിളുകൾ — സൂക്ഷിച്ചിരിക്കുന്നു, കാരണം അതാണ് ഡീബഗ്ഗിംഗിന് സഹായിക്കുന്നത്.)
ലോഗുകൾ ഉപയോഗിച്ച് നേരിട്ട് പ്രവർത്തിക്കുന്നു
API-യിൽ നിന്ന് നിങ്ങൾക്ക് ആക്സസ് ചെയ്യാൻ കഴിയുന്ന അതേ ലോഗുകൾ ഡോക്ടർ വായിക്കുന്നു. നിങ്ങൾ എങ്കിൽ ഇത് സുലഭമാണ് നിങ്ങളുടെ സ്വന്തം ഡയഗ്നോസ്റ്റിക് സ്ക്രീൻ നിർമ്മിക്കാനോ നിങ്ങളുടെ ബാക്കെൻഡിലേക്ക് ലോഗുകൾ അയയ്ക്കാനോ ആഗ്രഹിക്കുന്നു.
// Read the most recent log entries.
final logs = await Tracelet.getLogs(500);
for (final entry in logs) {
print('${entry.timestamp} [${entry.level}] ${entry.message}');
}
// Wipe stored logs (e.g. after the user files a report).
await Tracelet.clearLogs();ഓരോ LogEntry-നും id, level (DEBUG/INFO/WARN/ERROR), message,
കൂടാതെ ഒരു ISO-8601 timestamp. ഉപകരണത്തിലെ SQLite ഡാറ്റാബേസിൽ ലോഗുകൾ സംഭരിച്ചിരിക്കുന്നു
അവർ ആപ്പ് പുനരാരംഭിക്കുകയും പശ്ചാത്തലം പ്രവർത്തനം പിടിച്ചെടുക്കുകയും ചെയ്യുന്നു - കൃത്യമായി
ഒരു ഡീബഗ്ഗറിൽ കാണാൻ കഴിയാത്ത ഇവൻ്റുകൾ.
എത്ര ലോഗിൻ ചെയ്തിരിക്കുന്നു എന്നത് നിങ്ങളുടെ LoggerConfig (ലോഗ് ലെവൽ) ആണ് നിയന്ത്രിക്കുന്നത്. താഴ്ന്നത്
ഡാറ്റാബേസ് ചെറുതാക്കാൻ ഉൽപ്പാദനത്തിലെ നില; ഇത് debug ആയി ഉയർത്തുക
ഒരു പ്രശ്നം പുനർനിർമ്മിക്കുന്നു.
നിങ്ങളുടെ സ്വന്തം റിപ്പോർട്ട് നിർമ്മിക്കുന്നു
നിങ്ങൾ സ്വയം റിപ്പോർട്ട് സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ (ഉദാ. നിങ്ങളുടെ സ്വന്തം ക്രാഷിലേക്ക് അത് അറ്റാച്ചുചെയ്യുക റിപ്പോർട്ടർ, അല്ലെങ്കിൽ നിങ്ങളുടെ ആപ്പ് പതിപ്പ് ചേർക്കുക), ബിൽഡറെ നേരിട്ട് വിളിക്കുക:
import 'package:tracelet_doctor/tracelet_doctor.dart';
final report = await TraceletBugReport.build(
appName: 'My App',
appVersion: '2.4.1', // e.g. from package_info_plus
logLimit: 500,
telematicsLimit: 100,
);
// Now copy, share, upload, or attach `report` however you like.ഏത് കോൺഫിഗറേഷൻ മാപ്പിലും നിങ്ങൾക്ക് രഹസ്യ-പുനർനിർമ്മാണം സഹായി വീണ്ടും ഉപയോഗിക്കാനും കഴിയും — സുലഭം നിങ്ങൾ നിങ്ങളുടെ സ്വന്തം കോൺഫിഗറേഷൻ ലോഗ് ചെയ്യുകയാണെങ്കിൽ:
final safe = TraceletBugReport.redactConfig(Tracelet.activeConfig.toMap());റിപ്പോർട്ടിൽ എന്താണുള്ളത് (ചീറ്റ് ഷീറ്റ്)
| വിഭാഗം | ഉറവിടം | എന്തുകൊണ്ട് ഇത് സഹായിക്കുന്നു |
|---|---|---|
| ആരോഗ്യ പരിശോധന | Tracelet.getHealth() | അനുമതികൾ, OEM/ബാറ്ററി, സെൻസറുകൾ, ഉപകരണം — സാധാരണ സംശയിക്കുന്നവർ |
| മുന്നറിയിപ്പുകൾ | കണക്കാക്കിയ | ”പശ്ചാത്തലത്തിൽ ട്രാക്കിംഗ് നിർത്തുന്നതിന്” സാധ്യതയുള്ള കാരണം |
| സജീവ കോൺഫിഗറേഷൻ | Tracelet.activeConfig (പുതുക്കി) | പ്രയോഗിച്ച ഏതെങ്കിലും റിമോട്ട് കോൺഫിഗറേഷൻ (3.6.10+) ഉൾപ്പെടെ - യഥാർത്ഥത്തിൽ പ്രാബല്യത്തിലുള്ള ക്രമീകരണങ്ങൾ സ്ഥിരീകരിക്കുന്നു |
| ടെലിമാറ്റിക്സ് ഇവൻ്റുകൾ | Tracelet.getTelematicsEvents() | സമീപകാല ഡ്രൈവിംഗ്/ഇംപാക്റ്റ് ഇവൻ്റുകൾ (3.3.0) |
| രേഖകൾ | Tracelet.getLogs() | പശ്ചാത്തലത്തിൽ ഉൾപ്പെടെ SDK ചെയ്തതിൻ്റെ ഒരു ടൈംലൈൻ |
അറിഞ്ഞത് നന്നായി
- ആദ്യം സ്വകാര്യത — റിപ്പോർട്ട് പൂർണ്ണമായും ഉപകരണത്തിൽ സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു. ഒന്നുമില്ല നിങ്ങൾ അയച്ചില്ലെങ്കിൽ അപ്ലോഡ് ചെയ്യപ്പെടും. രഹസ്യങ്ങൾ ഉൾപ്പെടുത്തുന്നതിന് മുമ്പ് അവ തിരുത്തപ്പെടുന്നു.
- ആരംഭിക്കാത്തപ്പോൾ പ്രവർത്തിക്കുന്നു — ട്രേസ്ലെറ്റ് ഇതുവരെ ആരംഭിച്ചിട്ടില്ലെങ്കിൽ, ഡോക്ടർ ക്രാഷിംഗിനുപകരം “ഇനിഷ്യലൈസ് ചെയ്യാത്ത” സ്ക്രീനും ഓരോ റിപ്പോർട്ടും കാണിക്കുന്നു വിഭാഗം ഭംഗിയായി തരംതാഴ്ത്തുന്നു.
- ഡീബഗ് ബിൽഡുകളിൽ ഇത് ഷിപ്പുചെയ്യുക — പല ടീമുകളും
TraceletDoctor.show(context)-ലേക്ക് വയർ ചെയ്യുന്നു കുലുക്കുക ആംഗ്യമോ മറഞ്ഞിരിക്കുന്ന ഡീബഗ് മെനുവോ ആയതിനാൽ ക്യുഎയ്ക്കും പിന്തുണയ്ക്കും ഒരു റിപ്പോർട്ട് നേടാനാകും സെക്കൻ്റുകൾ.