Skip to content

Releases: wrkstrm/WrkstrmLog

3.0.0 - Mangrove

12 Nov 06:51

Choose a tag to compare

Highlights

  • Major API cleanup removing legacy “style” surface
  • Stronger multi-backend model + clearer runtime selection
  • WASM build workflow added; WASM compatibility improved
  • Documentation overhaul: tutorials, quickstart, and examples

Breaking Changes

  • Remove legacy style APIs
    • Delete Log.Style enum
    • Delete Log.style property
    • Delete init(style:) constructor
  • Remove aliases
    • Delete FanoutLog and TeeLog aliases; use LogGroup
  • Injection defaults
    • Remove legacy single-backend fallback state; when not explicitly set, backend resolves to platform default

Migration Guide (quick)

  • Constructors
    • init(style: .os) → init(backends: [OSLogBackend()])
    • init(style: .swift) → init(backends: [SwiftLogBackend()])
    • init(style: .print) → init(backends: [PrintLogBackend()])
  • Runtime selection
    • Log.Inject.setBackends([.os, .swift]) for ordered kinds (primary = index 0)
    • Log.Inject.setBackend(.os) is a convenience for a single kind
    • Inspect: Log.Inject.currentBackend()
  • Fan-out
    • Replace FanoutLog/TeeLog with LogGroup([log1, log2, ...])

Additions

  • Multi-backend support documented with examples and tests
  • WASM improvements: file/path handling without Foundation and clearer defaults on WASI/wasm32
  • New DocC content
    • File Logging tutorial
    • Tutorials table of contents
    • Updated “3.0 changes” article language

Changes

  • Backend resolution refined for Foundation/non-Xcode contexts
  • Normalized platform constants and minor cleanup across sources
  • README redesigned (badges, quick links, feature overview, tutorials)
  • Status table updated to show all running workflows, including WASM Build

Fixes and Quality

  • Safer logic in Log.Inject when removing kinds
  • Hardened tests to parse the last emitted log line (reduces flakiness)
  • Minor lints and small correctness tweaks

CI/CD

  • New workflow: “WASM Build | WrkstrmLog”
  • Renamed/standardized workflow display names (DocC, Swift Format, Build, Test)
  • README workflow badges synchronized with Actions

Housekeeping

  • License year update
  • SPI configuration tweaks

Full Changelog

2.2.4

17 Sep 07:48

Choose a tag to compare

Full Changelog: 2.2.3...2.2.4

2.2.3

15 Sep 23:05
b97a5b2

Choose a tag to compare

What's Changed

  • Fix logging cache isolation for concurrent tests by @rismay in #81

Full Changelog: 2.2.2...2.2.3

2.2.2

15 Sep 07:22

Choose a tag to compare

Full Changelog: 2.2...2.2.2

2.2.1

09 Sep 16:06

Choose a tag to compare

Full Changelog: 2.1.0...2.2.1

2.1

09 Sep 09:28
cbcea20

Choose a tag to compare

2.1

Full Changelog: 2.1.0...2.2

What's Changed

  • docs: explain exposure levels by @rismay in #76
  • chore: update docc deployment workflow by @rismay in #77
  • docs: add debugging ethos quote by @rismay in #78
  • fix: correct DocC hosting base path by @rismay in #79

Full Changelog: 2.0.1...2.1.0

2.0.1 - Trace Shades of Green

21 Aug 18:24

Choose a tag to compare

What's Changed

  • Document release naming convention by @rismay in #70
  • Fix typo in DocC workflow filename by @rismay in #71
  • Use shared swift-format configuration by @rismay in #72
  • Replace SwiftLint workflow with SwiftFormat by @rismay in #73
  • docs: fix grammar in info log comment by @rismay in #74
  • Update Log.swift by @rismay in #75

Full Changelog: 2.0.0...2.0.1

Aspen

13 Aug 03:10
252aa52

Choose a tag to compare

Summary

  • Global exposure level API – Consumers can now inspect and update the global log threshold via Log.globalExposureLevel, simplifying cross‑library log control

Naming Convention

Starting with this release, each version is nicknamed after a tree species in alphabetical order—a nod to “logging.”
2.0.0 inaugurates the series with “Aspen.” Future versions will continue with names like “Birch,” “Cedar,” and so on.

Expose Global Level

07 Aug 00:14

Choose a tag to compare

  • Add new API to expose global logging level to API consumers.

Public Logs, When Needed

06 Aug 23:20
397825c

Choose a tag to compare

Added

  • Global exposure limit to restrict logging output across libraries. Defaults to .critical; call Log.limitExposure(to:) at startup to expose more verbose logs.
  • Per‑logger exposure limit with a public maxExposureLevel so individual loggers can opt in to additional verbosity.
  • Exposure clamping that ensures raising the global exposure never exceeds any logger’s configured maxExposureLevel.

Removed

  • Log.removeExposureLimit; all loggers now require an explicit exposure configuration, preventing accidental emission of higher‑severity logs.

Testing & Quality

  • Expanded test coverage verifying exposure‑limit behavior, logger reuse, and filtering across severity levels.