Releases: tonystone/tracelog
Releases · tonystone/tracelog
Maintenance Release: 5.0.1
Fixed
- Fix 'Initialization of 'UnsafePointer' results in a dangling pointer' compiler warning.
- Fixed crash in AsyncWriterProxy buffering when buffer is empty.
Feature Release: 5.0.0
Added
- Added
OutputStreamFormatterprotocol 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
OutputStreamWriterprotocol to define types that write byte streams to their output and acceptOutputStreamFormattertypes to format the output. - Added
LogEntrytuple type toWriterdefining the formal types that a Writer writes. - Added
.bufferoption for.asyncconcurrency modes to allow for buffering when the writer is not available to write to its endpoint. - Added protected data monitoring for
FileWriter.Strategy.fixedon 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
.asyncto include options for configuration of the mode (.async(options: Set<AsyncConcurrencyModeOption>)and.async(Writer, options: Set<AsyncConcurrencyModeOption>)). - Changed
Writerprotocollog()method towrite(_ entry: Writer.LogEntry)to make it easier to process messages by writers and formatters. - Changed
Writerreturn toSwift.Result<Int, FailedReason>to return instructions for TraceLog for buffering and error recovery. - Changed
ConsoleWriterto accept newOutputStreamFormatterinstances allowing you to customize the output log format (default isTextFormat.) - Changed
FileWriterpublic interfaceFileWriternow requires the log directory be passed in, removing default value of./.- Removed the
fileConfigurationparameter replacing with newstrategyenum. - It now accepts the new
OutputStreamFormatterinstances allowing you to customize the output log format (default isTextFormat.)
- Changed
FileWriterarchive 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.) TextFormatto addvar encoding: String.Encoding { get }requirement.JSONFormatto addvar encoding: String.Encoding { get }requirement.- Renamed
AsyncOptiontoAsyncConcurrencyModeOption. - Changed
OutputStreamFormatter, it now requiresvar encoding: String.Encoding { get }. - Renamed
FileWriter.FileStrategytoFileWriter.Strategy. - Renamed
FileWriter.Strategy.RotateOptiontoFileWriter.Strategy.RotationOption.
Removed
- Removed
TraceLogTestHarnessmodule.
Fixed
- Fixed
logTracewhen 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
Updated
- Corrected availability of FileWriter and FileStrategyRotate so that they compile correctly on iOS.
Feature Release 5.0.0 beta 3
Added
- Added protected data monitoring for
FileWriter.Strategy.fixedon iOS for use withAsyncConcurrencyModeOption.buffer(writeInterval:strategy:). This allows TraceLog to be started up before protected data is available on iOS.
Feature Release 5.0.0 beta 2
Added
- Added extensive HTML documentation including user guides and a complete API reference.
Changed
- Renamed
AsyncOptiontoAsyncConcurrencyModeOption. - Changed
OutputStreamFormatter, it now requiresvar encoding: String.Encoding { get }. - Renamed
FileWriter.FileStrategytoFileWriter.Strategy. - Renamed
FileWriter.Strategy.RotateOptiontoFileWriter.Strategy.RotationOption.
Updated
TextFormatto addvar encoding: String.Encoding { get }requirement.JSONFormatto addvar encoding: String.Encoding { get }requirement.
Feature Release 5.0.0 beta 1
Added
- Added
OutputStreamFormatterprotocol 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
OutputStreamWriterprotocol to define types that write byte streams to their output and acceptOutputStreamFormattertypes to format the output. - Added
LogEntrytuple type toWriterdefining the formal types that a Writer writes. - Added
.bufferoption for.asyncconcurrency 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
.asyncto include options for configuration of the mode (.async(options: Set<AsyncOption>)and.async(Writer, options: Set<AsyncOption>)). - Changed
Writerprotocollog()method towrite(_ entry: Writer.LogEntry)to make it easier to process messages by writers and formatters. - Changed
Writerreturn toSwift.Result<Int, FailedReason>to return instructions for TraceLog for buffering and error recovery. - Changed
ConsoleWriterto accept newOutputStreamFormatterinstances allowing you to customize the output log format (default isTextFormat.) - Changed
FileWriterpublic interfaceFileWriternow requires the log directory be passed in, removing default value of./.- Removed the
fileConfigurationparameter replacing with newstrategyenum. - It now accepts the new
OutputStreamFormatterinstances allowing you to customize the output log format (default isTextFormat.)
- Changed
FileWriterarchive 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
TraceLogTestHarnessmodule.
Fixed
- Fixed
logTracewhen no trace level is passed. It's now the correct default value of 1 instead of 4 (issue #58).
Maintenance Release
Fixed
- Adding missing newline to
ConsoleWriteroutput (issue #55).
Feature Release 4.0.0
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
FileWriterclass for writing to local log files. - Added
TestHarnessto assist developers in testing their ownWritertypes. - Added
shellutility to assist in testingWritertypes. - Added TraceLogTestTools module/library to allow use of new
TestHarnessand 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
Added
- Added
FileWriterclass for writing to local log files.
4.0.0 Beta Release 2
Added
- Added
TestHarnessto assist developers in testing their ownWritertypes. - Added
shellutility to assist in testingWritertypes. - Added TraceLogTestTools module/library to allow use of new
TestHarnessand other Utilities.
Removed
- Removed the
UnifiedLoggingWriterand instead using externalAdaptiveSystemLogWriterwhich adapts to various platforms for latest system log.