tracelog

TraceLog is a highly configurable, flexible, portable, and simple to use debug logging system for Swift and Objective-C applications running on Linux, macOS, iOS, watchOS, and tvOS.

APACHE-2.0 License

Stars
53
Committers
7

Bot releases are visible (Hide)

tracelog - Maintenance Release: 5.0.1 Latest Release

Published by tonystone over 3 years ago

Fixed

  • Fix 'Initialization of 'UnsafePointer' results in a dangling pointer' compiler warning.
  • Fixed crash in AsyncWriterProxy buffering when buffer is empty.
tracelog - Feature Release: 5.0.0

Published by tonystone almost 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.
  • 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).
tracelog - Release 5.0.0 Beta 4

Published by tonystone about 5 years ago

Updated

  • Corrected availability of FileWriter and FileStrategyRotate so that they compile correctly on iOS.
tracelog - Feature Release 5.0.0 beta 3

Published by tonystone about 5 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.
tracelog - Feature Release 5.0.0 beta 2

Published by tonystone over 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.
tracelog - Feature Release 5.0.0 beta 1

Published by tonystone 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 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).
tracelog - Maintenance Release

Published by tonystone about 6 years ago

Fixed

  • Adding missing newline to ConsoleWriter output (issue #55).
tracelog - Feature Release 4.0.0

Published by tonystone about 6 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.
tracelog - 4.0.0 Beta Release 3

Published by tonystone over 6 years ago

Added

  • Added FileWriter class for writing to local log files.
tracelog - 4.0.0 Beta Release 2

Published by tonystone over 6 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.
tracelog - UnifiedLoggingWriter & Concurrency Mode release.

Published by tonystone over 6 years ago

Added

  • Added UnifiedLoggingWriter for Apple Unified Logging system logging using TraceLog.
  • 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.

Removed

  • Removed all Xcode projects, Xcode projects are now generated using Swift Package Manager.
  • Dropped iOS 8 support.
tracelog - Swift 3.0.0 Release

Published by tonystone over 6 years ago

Updated

  • Xcode projects to be swift 4.1 compatible.

Removed

  • Removed deprecated TLLogger.configure(). Use TraceLog.configure in swift instead.
  • Removed deprecated TLLogger.configureWithEnvironment. Use TraceLog.configure in swift instead.
tracelog - Maintenance Release

Published by tonystone over 6 years ago

2.2.0

Updated

  • Change build environment requirements to xcode9.2 / Swift 4.0.3 (note: this is ust the build, targets are still the same).
tracelog - Feature Release

Published by tonystone about 7 years ago

Added

  • Log level OFF to allow turning off logging for a specific level (global, prefix, tag).

Updated

  • Various documentation updates.
tracelog - Maintenance Release

Published by tonystone over 7 years ago

Added

  • Added required tests to bring coverage back to 100%.

Updated

  • Deprecated TLLogger.configure and TLLogger.configureWithEnvironment. Use TraceLog.configure in swift instead.
  • Changed Vagrant file to include libpython2.7 required for Swift REPL.

Fixed

  • Removed unnecessary String with formatters call that can result in a crash if the interpolated string includes formatter options that the String(format:) function will never have matching parameters for.
tracelog - Maintenance Release

Published by tonystone about 8 years ago

Added

  • The OS_ACTIVITY_MODE environment variable to iOS and OSX Example.
  • CHANGELOG.md

Updated

  • Inline documentation for all public classes and functions.
  • Combined TraceLog.configure func's into one with the same symantics as the 3 previous funcs.
  • iOS example application converting it to Swift.

Fixed

  • Cocoadocs documentation creation.
tracelog - Swift 3, Swift PM, Linux, Static setup, and installable writers...

Published by tonystone about 8 years ago

This release includes the addition of:

  • Installable Writers to allow custom writers to be used to write to various output devices/end points such as HTTP services, sys log, files, etc
  • Ability to configure the environment statically at the beginning of the application
  • Swift 3 Compatibility
  • Swift Package Manager support
  • Linux support
  • Now written in Swift 3
tracelog - Public Release

Published by tonystone over 8 years ago

tracelog - Internal Release

Published by phchang over 8 years ago

Preparing for 1.0.0 production version of TraceLog.

tracelog - Maintenance Release

Published by tonystone almost 9 years ago

  • Fixed issue with Swift only (pod 'TraceLog/Swift') applications not seeing output.
  • Removed requirement for adding -DDEBUG to OTHER_SWIFT_FLAGS.