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.
Features
- Filtering: Easily filter logs by categories, levels, and search text.
- Exporting: Export logs in multiple formats, including
.log
,.json
,.md
,.txt
, and.csv
. - User Friendly: Intuitive and accessible UI components for seamless integration into your application.
Add SimpleLoggerUI
to your Swift project using Swift Package Manager.
dependencies: [
.package(url: "https://github.com/markbattistella/SimpleLoggerUI", from: "1.0.0")
]
Alternatively, you can add SimpleLoggerUI
using Xcode by navigating to File > Add Packages
and entering the package repository URL.
LogExportScreen
provides a user interface for exporting log entries with various filtering options, making it easy to select specific logs and export them in the desired format.
Important
SimpleLoggerUI
requires the SimpleLogger
package, which is added by default. SimpleLogger
provides all the OS logging logic.
import SwiftUI
import SimpleLogger
import SimpleLoggerUI
struct ContentView: View {
@StateObject private var loggerManager = LoggerManager()
var body: some View {
NavigationView {
LogExportScreen(vm: loggerManager)
}
}
}
LogListScreen
displays log entries in a searchable list format, allowing users to browse, search, and filter logs by categories and levels.
Note
LogListScreen
is already included in LogExportScreen
. Use the list screen if you want to use it standalone without the export view.
import SwiftUI
import SimpleLoggerUI
struct ContentView: View {
@State private var logs: [OSLogEntryLog] = []
var body: some View {
NavigationView {
LogListScreen(logs: logs)
}
}
}
video.webm
Contributions are welcome! Please fork the repository and submit a pull request for any features, fixes, or improvements.
SimpleLoggerUI
is available under the MIT license. See the LICENSE file for more information.