Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Swift
  3. Puppy

Puppy

MITSwift0.9.0

A flexible Swift logging library supporting multiple transports, log rotation, and cross-platform compatibility.

GitHubGitHub
216 stars37 forks0 contributors

What is Puppy?

Puppy is a flexible logging library written in Swift that provides robust, cross-platform logging for applications. It supports multiple transports like console, file, syslog, and oslog, and can function both as a standalone tool and as a backend for Apple's swift-log framework. It solves the need for customizable, reliable logging across Darwin, Linux, and Windows environments.

Target Audience

Swift developers building applications that require cross-platform logging, especially those using or integrating with Apple's swift-log framework in server-side, desktop, or mobile projects. It's also suitable for developers needing advanced features like automatic log rotation and custom log formats.

Value Proposition

Developers choose Puppy for its seamless integration with swift-log, cross-platform compatibility, and built-in features like file log rotation. Its extensibility through protocols like Loggerable and Formattable allows deep customization, setting it apart from simpler logging solutions.

Overview

A flexible logging library written in Swift

Use Cases

Best For

  • Swift projects requiring logging across multiple platforms (Darwin, Linux, Windows).
  • Applications that need automatic log rotation with configurable size limits and archive management.
  • Integrating with Apple's swift-log framework as a backend for enhanced logging capabilities.
  • Customizing log output formats using the Formattable protocol for tailored logging needs.
  • Creating custom loggers by conforming to the Loggerable protocol for specialized logging scenarios.
  • Server-side Swift frameworks like Vapor that utilize swift-log and require file-based logging with rotation.

Not Ideal For

  • Projects requiring direct logging to cloud services or databases without custom implementation
  • Applications needing dead-simple, zero-configuration logging out of the box
  • Teams focused solely on single-platform development where cross-platform support adds overhead

Pros & Cons

Pros

Cross-Platform Compatibility

Works seamlessly on Darwin, Linux, and Windows, as evidenced by CI badges and explicit support mentioned in the README for diverse environments.

Swift-Log Integration

Functions as a backend for Apple's swift-log framework, enabling enhanced logging in Swift ecosystems with practical examples for Vapor integration.

Automatic Log Rotation

Includes file log rotation with configurable size limits and archived file management, shown through RotationConfig examples for efficient log handling.

Customizable Log Formats

Allows deep customization of log output via the Formattable protocol, demonstrated in the LogFormatter example for tailored logging needs.

Cons

No Built-in Cloud Logging

Lacks direct support for logging to cloud services or databases; custom loggers must be implemented via the Loggerable protocol, requiring additional development effort.

Complex Setup for Advanced Features

Configuring features like log rotation involves managing file URLs, permissions, and rotation parameters manually, which can be cumbersome compared to simpler libraries.

Limited to Swift Ecosystem

Being a Swift-specific library, it's not suitable for projects in other programming languages, restricting its use to Swift-based applications only.

Frequently Asked Questions

Quick Stats

Stars216
Forks37
Contributors0
Open Issues9
Last commit1 year ago
CreatedSince 2020

Tags

#ios#file-logging#syslog#logging-library#swift-log#log-rotation#darwin#logging#server-side-swift#linux#cross-platform#swift#macos#windows

Built With

S
Swift

Included in

Swift26.0k
Auto-fetched 6 hours ago

Related Projects

SwiftyBeaverSwiftyBeaver

Convenient & secure logging during development & release in Swift 4 & 5

Stars6,058
Forks493
Last commit1 year ago
XCGLoggerXCGLogger

A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.

Stars3,984
Forks476
Last commit2 years ago
TinyConsoleTinyConsole

TinyConsole is a micro-console that can help you log and display information inside an iOS application, where having a connection to a development computer is not possible.

Stars1,940
Forks89
Last commit6 years ago
RainbowRainbow

Delightful console output for Swift developers.

Stars1,935
Forks111
Last commit12 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub