본문으로 건너뛰기
cccskills
무료GitHub에 공개

logging-setup

Generates structured logging infrastructure using os.log/Logger to replace print() statements. Use when user wants to add proper logging, replace print statements, or set up app logging.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(4)

  • SKILL.md3.9 KB
  • logger-patterns.md6.2 KB
  • migration-guide.md4.4 KB
  • templates/AppLogger.swift2.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Logging Setup Generator

Replace print() statements with Apple's structured logging system (os.log/Logger) for better debugging, privacy controls, and Console.app integration.

When This Skill Activates

Use this skill when the user:

  • Asks to "add logging" or "set up logging"
  • Wants to "replace print statements"
  • Mentions "os.log", "Logger", or "structured logging"
  • Asks about "debug logging" or "production logging"
  • Wants to audit print() usage in their codebase

Why Logger Over print()

print()Logger
Always executesDebug logs compiled out in Release
No filteringFilter by subsystem/category in Console.app
No privacy.private, .public, .sensitive annotations
String interpolation always runsDeferred evaluation (performance)
Not in Console.appFull system integration

Pre-Generation Checks

1. Project Context Detection

  • Check deployment target (Logger requires iOS 14+ / macOS 11+)
  • Search for existing Logger/os.log usage
  • Identify source file locations (Sources/, App/, etc.)

2. Conflict Detection

Search for existing logging:

Glob: **/*Logger*.swift
Grep: "import OSLog" or "os_log"

If found, ask user:

  • Extend existing logging?
  • Replace with new implementation?
  • Create separate logger?

Modes of Operation

Mode 1: Audit

Find all print() statements and report:

Grep: print\s*\(

Report format:

  • File:line - print statement
  • Severity: Info/Warning/Error (based on context)
  • Suggested Logger level

Mode 2: Generate

Create logging infrastructure from scratch.

Mode 3: Migrate

Convert existing print() to Logger with suggestions.

Configuration Questions

Ask user via AskUserQuestion:

  1. Categories needed?

    • Network, Auth, UI, Data (defaults)
    • Custom categories?
  2. Include migration helpers?

    • Extension on String for quick migration
    • Temporary print-to-log bridge

Generation Process

Step 1: Create AppLogger.swift

Read template from templates/AppLogger.swift and customize:

  • Set subsystem from Bundle.main.bundleIdentifier
  • Add user-specified categories
  • Include usage examples in comments

Step 2: Determine File Location

Check project structure:

  • If Sources/ exists → Sources/Logging/AppLogger.swift
  • If App/ exists → App/Logging/AppLogger.swift
  • Otherwise → Logging/AppLogger.swift

Step 3: Provide Migration Guidance

Show examples of converting common print patterns:

// Before
print("User logged in: \(email)")

// After
AppLogger.auth.info("User logged in: \(email, privacy: .private)")

Output Format

After generation, provide:

Files Created

  • [Path]/Logging/AppLogger.swift

Integration Steps

  1. Import in files: import OSLog (not needed if using AppLogger)
  2. Replace print() calls with AppLogger.[category].level
  3. Add privacy annotations for sensitive data

Privacy Annotations Guide

  • .public - Safe to log (IDs, counts, non-sensitive)
  • .private - Redacted in release (emails, names)
  • .sensitive - Always redacted (passwords, tokens)

Console.app Usage

  1. Open Console.app
  2. Filter by subsystem: com.yourapp
  3. Filter by category: Network, Auth, etc.

Testing Instructions

  1. Add a test log: AppLogger.general.debug("Test log")
  2. Run app, check Xcode console
  3. Open Console.app, filter by your app's subsystem

References

  • logger-patterns.md - Best practices and privacy levels
  • migration-guide.md - Converting print() to Logger
  • templates/AppLogger.swift - Template file

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Run a structured accessibility audit on an iOS/macOS app — automated XCUITest audits, Accessibility Inspector, manual VoiceOver/Dynamic Type passes, and App Store Accessibility Nutrition Label evaluation. Use before release, when preparing Nutrition Label declarations, or for EU Accessibility Act compliance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rshankras/claude-code-apple-skills8122026년 7월 24일 업데이트

Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features. Use when improving app accessibility, adding accessibility labels and hints, or auditing compliance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rshankras/claude-code-apple-skills8122026년 7월 24일 업데이트

Generates an Apple-compliant account deletion flow with multi-step confirmation UI, optional data export, configurable grace period, Keychain cleanup, and server-side deletion request. Use when user needs account deletion, right-to-delete, or Apple App Review compliance for account removal.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rshankras/claude-code-apple-skills8122026년 7월 24일 업데이트

Privacy-preserving ad measurement with AdAttributionKit (SKAdNetwork's successor) — install and re-engagement attribution, conversion-value strategy under crowd anonymity, and end-to-end postback testing. Use when running paid acquisition beyond Apple Ads, measuring re-engagement campaigns, designing conversion values, or migrating from SKAdNetwork.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rshankras/claude-code-apple-skills8122026년 7월 24일 업데이트

alarmkit

무료

AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support. Use when implementing alarm or timer features in iOS 26+ apps.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rshankras/claude-code-apple-skills8122026년 7월 24일 업데이트

Interpret app metrics and make data-driven decisions. Covers DAU/MAU, retention, LTV, ARPU, App Store Connect analytics, AARRR funnel analysis, cohort analysis, and diagnostic decision trees. Use when user wants to understand their metrics, diagnose problems, or build a data-driven growth plan.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rshankras/claude-code-apple-skills8122026년 7월 24일 업데이트

rshankras의 스킬 모두 보기

이 스킬의 문제 신고