Skip to content

Replace raw print/debugPrint usage with structured, redacted logging #912

@NihalDR

Description

@NihalDR

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions