A flexible Swift logging library supporting multiple transports, log rotation, and cross-platform compatibility.
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.
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.
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.
A flexible logging library written in Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works seamlessly on Darwin, Linux, and Windows, as evidenced by CI badges and explicit support mentioned in the README for diverse environments.
Functions as a backend for Apple's swift-log framework, enabling enhanced logging in Swift ecosystems with practical examples for Vapor integration.
Includes file log rotation with configurable size limits and archived file management, shown through RotationConfig examples for efficient log handling.
Allows deep customization of log output via the Formattable protocol, demonstrated in the LogFormatter example for tailored logging needs.
Lacks direct support for logging to cloud services or databases; custom loggers must be implemented via the Loggerable protocol, requiring additional development effort.
Configuring features like log rotation involves managing file URLs, permissions, and rotation parameters manually, which can be cumbersome compared to simpler libraries.
Being a Swift-specific library, it's not suitable for projects in other programming languages, restricting its use to Swift-based applications only.