Skip to content

A logging backend for apple/swift-log that sends log entries to Supabase.

Notifications You must be signed in to change notification settings

binaryscraping/swift-log-supabase

Repository files navigation

swift-log-supabase

A logging backend for apple/swift-log that sends log entries to Supabase.

Getting Started

Add swift-log-supabase as a dependency to your project using SPM.

.package(url: "https://github.com/binaryscraping/swift-log-supabase", from: "0.1.0"),

And in your application/target, add "SupabaseLogging" to your "dependencies".

.target(
  name: "YourTarget",
  dependencies: [
    .product(name: "SupabaseLogging", package: "swift-log-supabase"),
  ]
)

Usage

Start by creating the logs table on Supabase dashboard by running the supabase-init.sql script on Supabase SQL Editor.

import Logging
import SupabaseLogging

// During app startup/initialization.

LoggingSystem.bootstrap { label in 
  SupabaseLogHandler(
    label: label,
    config: SupabaseLogConfig(
      table: "logs", // optional table name to use, defaults to "logs".
      supabaseURL: "https://your-supabase-project-url.com/rest/v1",
      supabaseAnonKey: "your-supabase-anon-key",
      isDebug: true // optional flag to turn on/off internal logging, defaults to "false".
    )
  )
}

// Then just log it.

let logger = Logger(label: "co.binaryscraping.swift-log-supabase")
logger.info("Supabase is super cool")

For more details on all the features of the Swift Logging API, check out the swift-log repo.