# Debug Log

> Printf-style debug logging for development-time visibility

- Skill: `majiayu000/debug-log` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/debug-log`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/debug-log/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/debug-log

---


# Debug Log

Printf-style logging for development and debugging. Compiles away completely in release builds.

## Purpose

- Development-time visibility into program state
- Add arbitrary trace points during debugging
- Zero overhead in release builds

## Usage

```c
#include "debug_log.h"

DEBUG_LOG("value=%d state=%s", x, state_name);
DEBUG_LOG("=== Entering function ===");
DEBUG_LOG("buffer contents: %.*s", (int)len, buf);
```

## Build Configuration

| Build | DEBUG defined | Behavior |
|-------|---------------|----------|
| Debug | Yes | Writes to `IKIGAI_DEBUG.LOG` |
| Release | No | Compiles to `((void)0)` - removed entirely |

## Initialization

In debug builds, call once early in `main()`:

```c
#ifdef DEBUG
ik_debug_log_init();
#endif
```

Or simply use the macro form (safe in any build):

```c
ik_debug_log_init();  // No-op if DEBUG not defined
```

## Output Format

```
[2025-01-15 10:30:00] src/client.c:34:main: === Session starting, PID=12345 ===
```

Format: `[timestamp] file:line:function: message`

## Log Location

- File: `IKIGAI_DEBUG.LOG` in working directory
- Truncated on each run (via `ik_debug_log_init`)

## Inspecting Logs

```bash
tail -f IKIGAI_DEBUG.LOG
```

## Alternate Buffer Note

ikigai runs in terminal alternate buffer mode. `printf()` and `fprintf(stderr, ...)` are not visible during execution. Use `DEBUG_LOG` instead.

## Source Files

- `src/debug_log.h` - Macro definition
- `src/debug_log.c` - Implementation (excluded from coverage)

