- Bundle IDs: com.tt.ifeel* → com.tt.feels* - App Groups: group.com.tt.ifeel* → group.com.tt.feels* - iCloud containers: iCloud.com.tt.ifeel* → iCloud.com.tt.feels* - IAP product IDs: com.tt.ifeel.IAP.* → com.tt.feels.IAP.* - URLs: ifeels.app → feels.app - Logger subsystems and dispatch queues - Product names and display names 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
35 lines
1.3 KiB
Swift
35 lines
1.3 KiB
Swift
//
|
|
// AppLogger.swift
|
|
// Feels
|
|
//
|
|
// Centralized logging using OSLog for production-ready logging.
|
|
//
|
|
|
|
import Foundation
|
|
import os.log
|
|
|
|
/// Centralized logging utility using OSLog
|
|
enum AppLogger {
|
|
// MARK: - Loggers by Category
|
|
|
|
static let general = Logger(subsystem: subsystem, category: "General")
|
|
static let iap = Logger(subsystem: subsystem, category: "IAP")
|
|
static let healthKit = Logger(subsystem: subsystem, category: "HealthKit")
|
|
static let liveActivity = Logger(subsystem: subsystem, category: "LiveActivity")
|
|
static let notifications = Logger(subsystem: subsystem, category: "Notifications")
|
|
static let photos = Logger(subsystem: subsystem, category: "Photos")
|
|
static let export = Logger(subsystem: subsystem, category: "Export")
|
|
static let settings = Logger(subsystem: subsystem, category: "Settings")
|
|
static let biometrics = Logger(subsystem: subsystem, category: "Biometrics")
|
|
static let ai = Logger(subsystem: subsystem, category: "AI")
|
|
static let events = Logger(subsystem: subsystem, category: "Events")
|
|
static let userDefaults = Logger(subsystem: subsystem, category: "UserDefaults")
|
|
static let backgroundTasks = Logger(subsystem: subsystem, category: "BackgroundTasks")
|
|
|
|
// MARK: - Private
|
|
|
|
private static var subsystem: String {
|
|
Bundle.main.bundleIdentifier ?? "com.tt.feels"
|
|
}
|
|
}
|