# Replace ad-hoc prints with the project logger

Debug prints left in production code, replaced with structured logging a query can reach.

Category: Observability and operability
Source: https://letsship.ai/use-cases/replace-ad-hoc-prints-with-the-logger
Published: 2026-08-25

## Goal

Replace ad-hoc print statements across one service with the project's structured logger.

## Acceptance criteria

- No print statements remain in the service
- Each replacement carries a level and structured fields rather than an interpolated string
- A lint rule blocks the old call from returning
- Tests assert the structured output where the message matters

## What lands as proof

A lint rule failing on a seeded print, which is what stops this being undone next week.

## Prompt

Copy this to an agent to open the ticket:

```text
Create a Linear issue in my team and assign it to the SHIP agent.

Title: Move {service} onto the project logger

Description: Replace ad-hoc print statements across one service with the project's structured logger.

Acceptance criteria:
- No print statements remain in the service
- Each replacement carries a level and structured fields rather than an interpolated string
- A lint rule blocks the old call from returning
- Tests assert the structured output where the message matters

Before you create the issue, count the print statements in one service in this repository and replace {service} with it.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: replace ad-hoc print statements across one service with the project's structured logger. Work that serves that outcome is in scope, and anything outside it is left for a separate ticket, so the pull request stays reviewable.

### How do I know the work is done?

The pull request carries the evidence, not only the diff. Here that means a rule blocks the old call, tests assert the new one, so a reviewer can confirm the result without reproducing the work locally.

### How much oversight does this need?

None is required before the run starts. Every claim this ticket makes can be checked by machine, so the agent works straight through and a person reviews the finished pull request like any other.
