TraceLog v5.0.0 Release Notes
Release Date: 2019-12-10 // over 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 acceptOutputStreamFormatter
types to format the output. - ➕ Added
LogEntry
tuple type toWriter
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 withAsyncConcurrencyModeOption.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
protocollog()
method towrite(_ entry: Writer.LogEntry)
to make it easier to process messages by writers and formatters. - 🔄 Changed
Writer
return toSwift.Result<Int, FailedReason>
to return instructions for TraceLog for buffering and error recovery. - 🔄 Changed
ConsoleWriter
to accept newOutputStreamFormatter
instances allowing you to customize the output log format (default isTextFormat
.) - 🔄 Changed
FileWriter
public interfaceFileWriter
now requires the log directory be passed in, removing default value of./
.- Removed the
fileConfiguration
parameter replacing with newstrategy
enum. - It now accepts the new
OutputStreamFormatter
instances allowing you to customize the output log format (default isTextFormat
.)
- 🔄 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 addvar encoding: String.Encoding { get }
requirement.JSONFormat
to addvar encoding: String.Encoding { get }
requirement.- 📇 Renamed
AsyncOption
toAsyncConcurrencyModeOption
. - 🔄 Changed
OutputStreamFormatter
, it now requiresvar encoding: String.Encoding { get }
. - 📇 Renamed
FileWriter.FileStrategy
toFileWriter.Strategy
. - 📇 Renamed
FileWriter.Strategy.RotateOption
toFileWriter.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).
- ➕ Added