The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Maintenance Release: 5.0.1
3 years ago
#### Fixed
- Fix 'Initialization of 'UnsafePointer<UInt8>' results in a dangling pointer' compiler warning.
- Fixed crash in AsyncWriterProxy buffering when buffer is empty.
Feature Release: 5.0.0
4 years ago
#### Added
- Added `OutputStreamFormatter` protocol to define formatters for use with byte output stream type Writers.
- Added `TextFormat`, an implementation of a OutputStreamFormatter that formats its output based on a supplied template (this is the default formatter for Console and File output).
- Added `JSONFormat`, an implementation of a OutputStreamFormatter that formats its output in standard JSON format.
- Added `OutputStreamWriter` protocol to define types that write byte streams to their output and accept `OutputStreamFormatter` types to format the output.
- Added `LogEntry` tuple type to `Writer` defining the formal types that a Writer writes.
- Added `.buffer` option for `.async` concurrency modes to allow for buffering when the writer is not available to write to its endpoint.
- Added protected data monitoring for `FileWriter.Strategy.fixed` on iOS for use with `AsyncConcurrencyModeOption.buffer(writeInterval:strategy:)`. This allows TraceLog to be started up before protected data is available on iOS.
#### Upated
- Requires Swift 5 for compilation.
- Changed parameters to `.async` to include options for configuration of the mode (`.async(options: Set<AsyncConcurrencyModeOption>)` and `.async(Writer, options: Set<AsyncConcurrencyModeOption>)`).
- Changed `Writer` protocol `log()` method to `write(_ entry: Writer.LogEntry)` to make it easier to process messages by writers and formatters.
- Changed `Writer` return to `Swift.Result<Int, FailedReason>` to return instructions for TraceLog for buffering and error recovery.
- Changed `ConsoleWriter` to accept new `OutputStreamFormatter` instances allowing you to customize the output log format (default is `TextFormat`.)
- Changed `FileWriter` public interface
* `FileWriter` now requires the log directory be passed in, removing default value of `./`.
* Removed the `fileConfiguration` parameter replacing with new `strategy` enum.
* It now accepts the new `OutputStreamFormatter` instances allowing you to customize the output log format (default is `TextFormat`.)
- Changed `FileWriter` archive file name date format to "yyyyMMdd-HHmm-ss-SSS" (This was done for maximum compatibility between platforms and can be overridden in the FileConfiguration object passed at init.)
- `TextFormat` to add `var encoding: String.Encoding { get }` requirement.
- `JSONFormat` to add `var encoding: String.Encoding { get }` requirement.
- Renamed `AsyncOption` to `AsyncConcurrencyModeOption`.
- Changed `OutputStreamFormatter`, it now requires `var encoding: String.Encoding { get }`.
- Renamed `FileWriter.FileStrategy` to `FileWriter.Strategy`.
- Renamed `FileWriter.Strategy.RotateOption` to `FileWriter.Strategy.RotationOption`.
#### Removed
- Removed `TraceLogTestHarness` module.
#### Fixed
- Fixed `logTrace` when no trace level is passed. It's now the correct default value of 1 instead of 4 (issue #58).
Release 5.0.0 Beta 4
4 years ago
#### Updated
- Corrected availability of FileWriter and FileStrategyRotate so that they compile correctly on iOS.
Feature Release 5.0.0 beta 3
4 years ago
#### Added
- Added protected data monitoring for `FileWriter.Strategy.fixed` on iOS for use with `AsyncConcurrencyModeOption.buffer(writeInterval:strategy:)`. This allows TraceLog to be started up before protected data is available on iOS.
Feature Release 5.0.0 beta 2
5 years ago
## Added
- Added extensive HTML documentation including user guides and a complete API reference.
## Changed
- Renamed `AsyncOption` to `AsyncConcurrencyModeOption`.
- Changed `OutputStreamFormatter`, it now requires `var encoding: String.Encoding { get }`.
- Renamed `FileWriter.FileStrategy` to `FileWriter.Strategy`.
- Renamed `FileWriter.Strategy.RotateOption` to `FileWriter.Strategy.RotationOption`.
#### Updated
- `TextFormat` to add `var encoding: String.Encoding { get }` requirement.
- `JSONFormat` to add `var encoding: String.Encoding { get }` requirement.
Feature Release 5.0.0 beta 1
5 years ago
#### Added
- Added `OutputStreamFormatter` protocol to define formatters for use with byte output stream type Writers.
- Added `TextFormat`, an implementation of a OutputStreamFormatter that formats its output based on a supplied template (this is the default formatter for Console and File output).
- Added `JSONFormat`, an implementation of a OutputStreamFormatter that formats its output in standard JSON format.
- Added `OutputStreamWriter` protocol to define types that write byte streams to their output and accept `OutputStreamFormatter` types to format the output.
- Added `LogEntry` tuple type to `Writer` defining the formal types that a Writer writes.
- Added `.buffer` option for `.async` concurrency modes to allow for buffering when the writer is not available to write to its endpoint.
#### Changed
- Requires Swift 5 for compilation.
- Changed parameters to `.async` to include options for configuration of the mode (`.async(options: Set<AsyncOption>)` and `.async(Writer, options: Set<AsyncOption>)`).
- Changed `Writer` protocol `log()` method to `write(_ entry: Writer.LogEntry)` to make it easier to process messages by writers and formatters.
- Changed `Writer` return to `Swift.Result<Int, FailedReason>` to return instructions for TraceLog for buffering and error recovery.
- Changed `ConsoleWriter` to accept new `OutputStreamFormatter` instances allowing you to customize the output log format (default is `TextFormat`.)
- Changed `FileWriter` public interface
* `FileWriter` now requires the log directory be passed in, removing default value of `./`.
* Removed the `fileConfiguration` parameter replacing with new `strategy` enum.
* It now accepts the new `OutputStreamFormatter` instances allowing you to customize the output log format (default is `TextFormat`.)
- Changed `FileWriter` archive file name date format to "yyyyMMdd-HHmm-ss-SSS" (This was done for maximum compatibility between platforms and can be overridden in the FileConfiguration object passed at init.)
#### Removed
- Removed `TraceLogTestHarness` module.
#### Fixed
- Fixed `logTrace` when no trace level is passed. It's now the correct default value of 1 instead of 4 (issue #58).
Maintenance Release
5 years ago
#### Fixed
- Adding missing newline to `ConsoleWriter` output (issue #55).
Feature Release 4.0.0
5 years ago
#### Added
- Added mode to TraceLog.configuration to allow direct, async, or sync mode of operation. Sync & direct mode are useful for use cases that have short-lived processes (scripts) or require real-time logging.
- Added ability to set the concurrency mode individually for each Writer.
- Added `FileWriter` class for writing to local log files.
- Added `TestHarness` to assist developers in testing their own `Writer` types.
- Added `shell` utility to assist in testing `Writer` types.
- Added TraceLogTestTools module/library to allow use of new `TestHarness` and other Utilities.
#### Removed
- Removed all Xcode projects, Xcode projects are now generated using Swift Package Manager.
- Dropped iOS 8 support.
4.0.0 Beta Release 3
5 years ago
## Added
- Added `FileWriter` class for writing to local log files.
4.0.0 Beta Release 2
5 years ago
#### Added
- Added `TestHarness` to assist developers in testing their own `Writer` types.
- Added `shell` utility to assist in testing `Writer` types.
- Added TraceLogTestTools module/library to allow use of new `TestHarness` and other Utilities.
#### Removed
- Removed the `UnifiedLoggingWriter` and instead using external `AdaptiveSystemLogWriter` which adapts to various platforms for latest system log.