Releases: apple/swift-log
1.4.4
Sendable fixup for 1.4.3
The 1.4.3 release carefully introduced Sendable across the library; sadly we missed that 5.6.x Swift series treat a "missing marker protocol conformance for Sendable" as an error while it is intended to be a warning as which it is correctly reported in Swift 5.7.
This release fixes this by not requiring that values stored in Logger.MetadataValue.stringConvertible must be Sendable, however practically speaking they should be thread-safe in any case, as it is not guaranteed in any way when/where this string convertible value will be invoked from.
This release contains no other changes from 1.4.3.
What's Changed
Full Changelog: 1.4.3...1.4.4
1.4.3
Highlights
Loggers and all related types are now Sendable, including metadata values which have to be Sendable as well.
When using from Swift that is concurrency aware, you may be getting warnings where you didn't before, these are all correct though - you need to be ready for e.g. logger metadata to be accessed from another thread. Thankfully values logged this way should usually be sendable to begin with, preferably value types.
For more details see: #218
What's Changed
- Remove references to Swift 4 by @steipete in #186
 - Include source in StreamLogHandler output by @slashmo in #189
 - Improve StdioOutputStream with fwrite (#180) by @felipejinli in #188
 - use #fileID for Swift 5.3+ by @weissi in #187
 - Add 
SwiftLogNoOpLogHandler.init(_: String)by @glbrntt in #194 - update 5.4 to release docker image by @tomerd in #196
 - adopt security guidelines by @weissi in #197
 - Logging: avoid a deprecation warning on Windows by @compnerd in #199
 - Tests: enable tests on Windows by @compnerd in #198
 - Add swift-log-elk as a new logging backend to the Readme by @philippzagar in #201
 - Add swift-log-SwiftyBeaver as a new logging backend to README.md by @ShivaHuang in #203
 - fix jazzy issues on older versions of ubuntu by @tomerd in #210
 - add docker setup for 5.5 by @tomerd in #211
 - Android support by @andriydruk in #209
 - update doc generation script by @tomerd in #213
 - Add 5.6 nightly CI by @Lukasa in #214
 - ci update by @tomerd in #219
 - Add binaryscraping/swift-log-supabase to README by @GRSouza in #221
 - better abstration for LoggingSystem state by @tomerd in #222
 - adopt sendable by @tomerd in #218
 - minimal DocC markdown to order Logger.Levels by @heckj in #225
 
New Contributors
- @steipete made their first contribution in #186
 - @slashmo made their first contribution in #189
 - @felipejinli made their first contribution in #188
 - @philippzagar made their first contribution in #201
 - @andriydruk made their first contribution in #209
 - @Lukasa made their first contribution in #214
 - @GRSouza made their first contribution in #221
 - @heckj made their first contribution in #225
 
Full Changelog: 1.4.2...1.4.3
1.4.2
This release fixes a single bug in the propagation of the function parameter in the source-less Logger.trace function.
For more details refer to #185 - thank you noticing and fixing the issue @saulbaro!
You can find additional details on all changes in this release in the 1.4.2 milestone.
1.4.1
This patch release fixes some compatibility issues, including a Windows compatibility issue as well as wrongly removed APIs in the 1.3.0->1.4.0 transition.
No new features were added in this release.
You can refer to the detailed changes by inspecting the issues linked form the 1.4.1 milestone.
SwiftLog 1.4.0
Highlights
This release addresses a missing public init in the newly introduced NoOpLogHandler. Please use 1.4.0 rather than 1.3.0 to be able to actually instantiate the that handler.
SemVer Minor
- Add 
public inittoNoOpLogHandlerintroduced in 1.3.0 #142 
Credits
This release contains a single PR: #146
The complete change-list is available on the 1.4.0 milestone.
Thank you @adam-fowler for spotting and fixing the mistake!
SwiftLog 1.3.0
Highlights
LogHandler implementations should take care adjust their implementations moving forward to implement the following log function:
func log(
    level: Logging.Logger.Level, 
    message: Logging.Logger.Message, 
    metadata: Logging.Logger.Metadata?, 
    source: String, // new (!)
    file: String, function: String, line: UInt
)rather than the previous function:
func log(
    level: Logging.Logger.Level, 
    message: Logging.Logger.Message, 
    metadata: Logging.Logger.Metadata?, 
    file: String, function: String, line: UInt
)Compatibility shims are provided and existing implementations will continue to work as-is. However in order to reap benefits of the new source (which will contain the "module name from which this log message originates") parameter, they will have to change which log overload they implement. We suggest moving to implementing the new overload (with source:) as soon as possible, allowing the logging ecosystem to make use of this new capability.
For details see:
- Add "source" for log messages #135
 
SemVer Minor
- Add "source" for log messages #135
 - Add NoOpLogHandler for when you don't want logging #142
 - Logging: port to Windows #118
 - =multiplex #139 more properly handle logLevel in multiplex handler #140
- Note that previous behavior of the 
MultiplexLogHandlerwas very surprising and this change makes it more consistent, see the PR for details if you are using multiplex handlers 
 - Note that previous behavior of the 
 
SemVer Patch
- silence #file to #filePath warnings #133
 - a number of readme and docs improvements:
 - and more, see the 1.3.0 milestone for all closed issues.
 
Credits
This release includes 15 issues/PRs, which were made possible with the help of 18 contributors 🎉
We would like to thank all everyone for their feedback and contributions:
Tomer Doron, Johannes Weiss, Konrad ktoso Malawski, Saleem Abdulrasool, Gwynne Raskind, prafsoni, Adam Fowler, Neal Lester, Artur Dryomov, Franz Busch, Shiva Huang, zach wick, Ravi Kandhadai, YR Chen, Jeremy Greenwood, Will Lisac, Mattt, Tanner
Thank you!
SwiftLog 1.2.0
SwiftLog 1.1.1
SemVer Patch
- add flush api to default stdout/stderr logger (#87)
 - Fix typo in LogHandler doc comment (#76)
 - Link to ianpartridge/swift-log-syslog backend impl (#73)
 - Fix documented ordering of Level (#78)
 - Add Adorkable/swift-log-format-and-pipe to Backend list (#83)
 - test formatting issues as part of sanity check (#84)
 - better documentation around MetadataValue being expressible by literal
 - Add HeliumLogger to README (#88)
 
SwiftLog 1.1.0
SemVer Minor
- Expose an API for configuring basic stdio log handling (#61)
 - Added CaseIterable to Logger.Level enum (#46)
 
SemVer Patch
- Add internal section link to README.md (#71)
 - add a CocoaPods podspec generator (#54)
 - Update README.md
 - explain the upcoming SwiftLog 0 (#69)
 - changed to isEmpty. (#65)
 - docs: improve API documentation coverage (#67)
 - Fix API documentation (#66)
 - Add 'Show on GitHub' link to API docs (#64)
 - add git commit template (#62)
 - fix docs #file -> #function (#59)
 - Fixed typo. (#58)
 - add contribution guidelines and github default config (#55)
 - fix linux tests formatting (#45)
 - fix docker setup to use release version of swift 5 (#48)
 - Link to more appropriate (still open) Swift issue (#50)
 - Fix typo in "critical" words in docs (#49)
 - retain SwiftNIO copyright header (#44)
 - readme: fix log levels (#43)
 - fix typo in API docs (#42)
 - use consistent, swifty naming convention (#41)
 
swift-log 1.0.0
The initial release.