Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions