{"id":15055354,"url":"https://github.com/markbattistella/simpleloggerui","last_synced_at":"2026-01-26T04:32:11.336Z","repository":{"id":256527165,"uuid":"855575397","full_name":"markbattistella/SimpleLoggerUI","owner":"markbattistella","description":"SimpleLoggerUI is a Swift package that provides a set of convenient SwiftUI views to easily integrate logging functionalities into your iOS or macOS applications. This package allows developers to display, filter, and export log entries without the need to build custom interfaces from scratch.","archived":false,"fork":false,"pushed_at":"2024-11-16T23:41:44.000Z","size":18525,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-09T11:17:51.737Z","etag":null,"topics":["hacktoberfest","ios","ipados","logger","macos","oslog","swift","swiftui","visionos"],"latest_commit_sha":null,"homepage":"https://swiftpackageindex.com/markbattistella/SimpleLoggerUI/documentation","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markbattistella.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.me/markbattistella/5AUD","https://www.paypal.me/markbattistella/10AUD","https://www.paypal.me/markbattistella/20AUD"]}},"created_at":"2024-09-11T05:14:12.000Z","updated_at":"2025-01-27T18:36:15.000Z","dependencies_parsed_at":"2024-09-11T11:49:01.663Z","dependency_job_id":"32af7e85-9c64-46fa-a537-6ffc1c1e4623","html_url":"https://github.com/markbattistella/SimpleLoggerUI","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.4285714285714286,"last_synced_commit":"b250a59614ad737c51d1529fe725337c163e6d46"},"previous_names":["markbattistella/simpleloggerui"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markbattistella%2FSimpleLoggerUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markbattistella%2FSimpleLoggerUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markbattistella%2FSimpleLoggerUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markbattistella%2FSimpleLoggerUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markbattistella","download_url":"https://codeload.github.com/markbattistella/SimpleLoggerUI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254496300,"owners_count":22080690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","ios","ipados","logger","macos","oslog","swift","swiftui","visionos"],"created_at":"2024-09-24T21:41:13.663Z","updated_at":"2026-01-26T04:32:11.325Z","avatar_url":"https://github.com/markbattistella.png","language":"Swift","funding_links":["https://www.paypal.me/markbattistella/5AUD","https://www.paypal.me/markbattistella/10AUD","https://www.paypal.me/markbattistella/20AUD"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003cdiv align=\"center\"\u003e\n\n# SimpleLoggerUI\n\n![Swift Versions](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fmarkbattistella%2FSimpleLoggerUI%2Fbadge%3Ftype%3Dswift-versions)\n\n![Platforms](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fmarkbattistella%2FSimpleLoggerUI%2Fbadge%3Ftype%3Dplatforms)\n\n![Licence](https://img.shields.io/badge/Licence-MIT-white?labelColor=blue\u0026style=flat)\n\n\u003c/div\u003e\n\n`SimpleLoggerUI` is a Swift package that provides a complete, ready-to-use SwiftUI interface for inspecting logs collected via the [`SimpleLogger`](https://github.com/markbattistella/SimpleLogger) package.\n\nIt includes a full log list screen with filtering, exporting, and platform-appropriate UI behaviour for iOS, macOS, iPadOS, and visionOS—without requiring you to build or manage any custom logging UI.\n\n## Features\n\n- **Log list screen**\n  - Displays logs with timestamp, level, subsystem, category, and message\n  - Visual styling adapts to log severity for improved scan-ability\n  - Pull-to-refresh support\n\n- **Filtering**\n  - Exclude system logs\n  - Filter by:\n    - Specific date\n    - Date range\n    - Hour range (within a single day)\n    - Preset ranges (e.g. recent periods)\n  - Filter by log level with multi-selection support\n\n- **Exporting**\n  - Export formats:\n    - Plain log\n    - JSON\n    - JSON Lines\n    - CSV (configurable delimiter)\n  - Optional gzip compression for file exports\n  - Export to file system or copy directly to clipboard\n\n- **Cross-platform**\n  - Adaptive navigation and toolbar behaviour\n  - Native file exporter integration\n  - macOS and iOS-appropriate interaction patterns\n\n## Installation\n\nAdd `SimpleLoggerUI` using Swift Package Manager.\n\n```swift\ndependencies: [\n  .package(\n    url: \"https://github.com/markbattistella/SimpleLoggerUI\", \n    from: \"1.0.0\"\n  )\n]\n```\n\nAlternatively, you can add `SimpleLoggerUI` using Xcode by navigating to `File \u003e Add Packages` and entering the package repository URL.\n\n## Usage\n\n### LogListScreen\n\n`LogListScreen` is the primary entry point. It manages fetching, filtering, and exporting logs internally using `LoggerManager`.\n\n\u003e ![IMPORTANT]\n\u003e You do not need to supply logs manually.\n\n```swift\nimport SwiftUI\nimport SimpleLoggerUI\n\nstruct ContentView: View {\n  var body: some View {\n    NavigationStack {\n      LogListScreen()\n    }\n  }\n}\n```\n\nLogListScreen automatically:\n\n- Fetches logs on appearance\n- Supports pull-to-refresh\n- Provides toolbar actions for filtering and exporting\n- Displays loading and empty states\n\n## Filtering Logs\n\nTap Filter in the toolbar to open the filter sheet.\n\nAvailable filter modes:\n\n### Specific date\n\nView logs recorded on a single calendar day.\n\n### Date range\n\nView logs across multiple days (inclusive).\n\n### Hour range\n\nSelect a date and restrict logs to a specific hour window.\n\n### Preset\n\nQuickly apply commonly used time ranges.\n\nYou can also:\n\n- Exclude system logs\n- Select which log levels are visible\n- Filter changes are applied immediately.\n\n## Exporting Logs\n\nTap Export in the toolbar to open the export sheet.\n\n### Export options\n\n- Output formats:\n  - `.log`\n  - `.json`\n  - `.jsonl`\n  - `.csv`\n- CSV delimiter selection\n- Optional gzip compression (file exports only)\n\n### Export destinations\n\n- **Export to file:** Saves the export via the system file picker.\n- **Copy to clipboard:** Copies UTF-8 text in the selected format (compression ignored).\n\n## Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request for any features, fixes, or improvements.\n\n## License\n\n`SimpleLoggerUI` is available under the MIT license. See the LICENCE file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkbattistella%2Fsimpleloggerui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkbattistella%2Fsimpleloggerui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkbattistella%2Fsimpleloggerui/lists"}