# cocoalumberjack/cocoalumberjack

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/cocoalumberjack-cocoalumberjack).**

13,344 stars · 2,283 forks · Objective-C · bsd-3-clause

## Links

- GitHub: https://github.com/CocoaLumberjack/CocoaLumberjack
- Homepage: https://cocoalumberjack.github.io
- awesome-repositories: https://awesome-repositories.com/repository/cocoalumberjack-cocoalumberjack.md

## Topics

`carthage` `cocoalumberjack` `cocoapods` `ios` `log` `logger` `logging` `lumberjack` `macos` `objective-c` `spm` `swift` `swift-package-manager` `tvos` `visionos` `watchos`

## Description

CocoaLumberjack is a logging framework designed for Apple platforms, providing a system for capturing, filtering, and managing diagnostic messages within mobile and desktop applications. It serves as a tool for monitoring software health and troubleshooting runtime issues by recording application events across various severity levels.

The framework utilizes a modular architecture that allows developers to define custom log levels and route diagnostic output to multiple concurrent destinations, including the system console, local files, and remote servers. It incorporates an asynchronous pipeline and thread-safe message queuing to process log events on background threads, ensuring that diagnostic tasks do not block the main execution flow of the application.

The system supports automated file management through atomic rotation based on size or time constraints and provides dynamic filtering to discard irrelevant data at runtime. These capabilities facilitate a structured debugging workflow by allowing developers to isolate critical errors and aggregate diagnostic information for centralized analysis.

## Tags

### Development Tools & Productivity

- [Logging Libraries](https://awesome-repositories.com/f/development-tools-productivity/logging-libraries.md) — Offers a modular logging architecture that allows developers to define custom log levels and output targets for mobile applications.
- [Diagnostic Logging Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/execution-trace-log-analyzers/diagnostic-logging-tools.md) — Allows setting minimum importance levels for diagnostic messages to ignore irrelevant data and focus on critical events. ([source](https://cocoalumberjack.github.io/Documentation/))
- [Diagnostic Log Routers](https://awesome-repositories.com/f/development-tools-productivity/cli-output-controllers/stream-redirection/diagnostic-log-routers.md) — Sends diagnostic output to specific targets like the system console, local files, or remote servers. ([source](https://cocoalumberjack.github.io/Documentation/))
- [Debugging and Diagnostics](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics.md) — Filters and organizes diagnostic output by severity levels to isolate critical errors and streamline the process of fixing code.
- [Thread-Safe Communication Channels](https://awesome-repositories.com/f/development-tools-productivity/thread-managers/thread-safe-communication-channels.md) — Manages incoming log events through a synchronized buffer to ensure data integrity when multiple threads write logs simultaneously.

### System Administration & Monitoring

- [Apple Platform Diagnostic Tools](https://awesome-repositories.com/f/system-administration-monitoring/cross-platform-diagnostic-tools/apple-platform-diagnostic-tools.md) — Provides a system for capturing and filtering application events across different severity levels on Apple platforms.
- [Application Logging](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/telemetry-and-log-collectors/application-logging.md) — Provides a system for capturing and managing diagnostic messages within mobile and desktop applications to troubleshoot runtime issues. ([source](https://cocoalumberjack.github.io/Documentation/))
- [Asynchronous Logging](https://awesome-repositories.com/f/system-administration-monitoring/asynchronous-logging.md) — Processes log messages on a dedicated background thread to prevent blocking the main execution flow of the application.
- [Log Aggregation](https://awesome-repositories.com/f/system-administration-monitoring/log-aggregation.md) — Directs application logs to multiple destinations for centralized data analysis.
- [Log Rotation Utilities](https://awesome-repositories.com/f/system-administration-monitoring/log-rotation-utilities.md) — Manages disk space by automatically splitting or archiving log files based on size or time constraints.
- [Dynamic Severity Classifiers](https://awesome-repositories.com/f/system-administration-monitoring/log-ingestion/log-field-mappings/dynamic-severity-classifiers.md) — Evaluates log importance levels at runtime to discard irrelevant diagnostic data before it reaches the final output destination.

### Software Engineering & Architecture

- [Logging Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/logging-frameworks.md) — Implements a logging framework that routes diagnostic messages to multiple destinations including the system console, files, and remote servers.
- [Modular Extension Architectures](https://awesome-repositories.com/f/software-engineering-architecture/modular-extension-architectures.md) — Uses a pluggable interface system to route diagnostic data to multiple concurrent outputs like files, consoles, or network sockets.

### Part of an Awesome List

- [Logging and Debugging](https://awesome-repositories.com/f/awesome-lists/devtools/logging-and-debugging.md) — Flexible and high-performance logging framework.
