CCExtractor / CCExtractor/ultimate_alarm_clock

Replace raw print/debugPrint usage with structured, redacted logging

Open
#912 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
112
Forks
227
PR merge metrics
No merged PRs in 30d

Description

## Problem
The codebase contains many raw `print` / `debugPrint` calls in production paths. This can:
- create noisy logs that make real errors harder to triage
- leak internal state or sensitive runtime details in logs
- make logging behavior inconsistent across modules

## Example locations
- `lib/app/utils/system_ringtone_service.dart:75`
- `lib/app/data/providers/push_notifications.dart:8`
- `lib/app/modules/timer/views/timer_animation.dart:35`

## Why this is important
Logging should follow a structured policy with controllable verbosity and redaction. Ad-hoc prints increase operational risk and reduce observability quality.

## Proposed fix
- Introduce a centralized logging utility (e.g., wrapper with levels: debug/info/warn/error)
- Gate debug-level logs behind build mode / config
- Redact sensitive fields (tokens, user IDs, emails, device-specific identifiers)
- Replace raw `print`/`debugPrint` calls incrementally, starting with app logic and providers
- Add lint or CI check to prevent new raw print statements in production code

## Acceptance criteria
- Raw `print` calls removed from production paths (or explicitly justified)
- `debugPrint` usage follows centralized logger policy
- Sensitive values are redacted in logs
- Developer docs include logging guidelines

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.