All notable changes to this project will be documented in this file.
LogsManager
adheres to Semantic Versioning.
Released on `2023-06-22
- Reusabled
String
compression logic oneLine
parameter to control logs formatting- [AlertLogger] Allow to show aler once per error
- Use
|
prefix for normalized data string to simplify console filtering DDLogMessage.Parameters.Constants.skipDataNormalizationKeyPrefix
constant to allow data entry normalization skip
- Output error type during error normalization
- Sort normalized data string parameters
- Use
Set
to track once logged errors - Better empty data string
- Do not map Data to ASCII
- Better multiline formatting
- Better code reuse
- Lazy timestamp parameter
- Crash on
onceLoggedErrors
access fix
Released on `2023-06-22
- Lowered restriction for log data. Data key type is
AnyHashable
now.
Released on `2023-06-21
- Console data string format
Released on `2023-06-21
- Trace logs for
RoutableLogger
- Output file name only instead of whole path for trace log
- Trace log level fix
Released on `2023-06-20
- All log functions now accept
data
as@autoclosure
Released on `2023-06-20
- Trace log level:
logTrace()
Released on `2023-06-15
- Allow to attach data to non-error logs
Released on `2023-01-26
- Min supported OS versions rised
Released on 2022-07-07
- Added an ability to specify string log components for RoutableLogger
- Allow to call log components detection from outside
- Allow to get current log components
- DDLogMessage.Parameters .compressedNormalizedData(allowedCount:)
- Deadlock on log from logger queue prevention
- LogComponent: CustomStringConvertible
- LoggerMode.muteComponentsBelowLevel
- LoggerMode.specificAndMutedComponents(specific:muted:)
- LoggerMode.specificAndMutedComponentsAndLevels(specific:muted:)
- Do not attach error's debugDescription if it equals to the localizedDescription
- RoutableLogger dependency
- Route all logs instead of using prints
- Better compression logic to prevent excessive base64 encoding
- Better deadlock case resolve
- Better deadlock error message
- Capture timestamp earlier
Released on 11/17/2021.
- Do not add empty user info to error data
- Carthage support is removed
Released on 11/17/2021.
- [Carthage] Use XCFrameworks
- Carthage is deprecated and will be removed in the
10.0.0
version
Released on 11/17/2021.
- [RoutableLogger] Carthage support for all platforms
Released on 11/16/2021.
- [RoutableLogger] SPM support
Released on 11/16/2021.
- Add error debug description if it differs from default description under "debugDescription" key in data
- Add error user info as "errorUserInfoJSON" or "errorUserInfo" if present
- osX, tvOS and watchOS support
- [RoutableLogger] logErrorOnceHandler and logErrorOnce
- Lowered iOS deployment target to 9.0
- [RoutableLogger] No output by default for data and verbose logs
- [RoutableLogger] Output debug logs during develop builds only
- [RoutableLogger] separation from LogsManager
- [LogsManager] Deadlock fix on double resume call
Released on 09/26/2021.
- ExtensionSafe podspec
- APPLICATION_EXTENSION_API_ONLY config for subspecs
Released on 09/26/2021.
- ExtensionSafe podspec
- APPLICATION_EXTENSION_API_ONLY config for subspecs
Released on 09/26/2021.
- Allow to use per logger custom date formatters
- Global async/sync message log flag - LoggersManager.logMessagesAsync
- Auto-add localized description parameter to error data if it differ from the error message
- Log errors sync and allow to alter this behavior via parameter
- Log messages async and allow to alter this behavior via parameter
- Logs pause/resume logic
- logWarning for RoutableLogger
Released on 03/20/2021.
- Excessive CocoaLumberjack dependency for RoutableLogger subspec
Released on 03/20/2021.
- Replaced RoutableLogger log functions with static methods
Released on 03/20/2021.
- Public access
- Carthage
Released on 03/20/2021.
- Log level check for logError
- Log level message filter to prevent performance impact
- logErrorOnce method and function
- Logger remove
- Concurrency safety
- Generate normalized data and error during log message creation
- Prevent excessive copy
- String.getFileName(filePath:) speed up
Released on 11/06/2020.
- Dropped iOS 8.0 support
- Latest Lumberjack support
Released on 01/28/2020.
- CrashLogger
- LogsManager .fileLogger
- LogsManager .addFileLogger()
- LogsManager .removeFileLogger()
- Moved to String from StaticString type
- Separated extension safe and unsafe parts
Released on 11/26/2019.
- Initialize log component
Released on 08/27/2019.
- Mute logger mode
- Message log level corresponds to its flag
Released on 08/16/2019.
- Added ability to specify specific components with specific log levels for them
Released on 08/16/2019.
- File name parameter for log component detection
Released on 08/16/2019.
- Restored ability to pass log components as a parameter if needed
Released on 08/15/2019.
- Fixed console logger missed data and error texts
Released on 08/15/2019.
- Public properties in
DDLogMessage.Parameters
Released on 08/14/2019.
- Public
normalizedData
andnormalizedError
inDDLogMessage.Parameters
Released on 08/14/2019.
DDLogMessage
tag
property holdsParameters
instead of array of log components- BaseAbstractTextLogger now also adds error description and data description to a formatted message
- Removed ErrorLogger protocol. You can instead inherit from
DDAbstractLogger
, conform toBaseLogger
and overridelog(message:)
. You can access needed parameters usingmessage.parameters
.
- BaseTextLogger -> BaseLogger
- BaseAbstractLogger -> BaseAbstractTextLogger
Released on 08/09/2019.
- Logger mode documentation
- Deinitialize component doc
- Log name for deinit component
- Removed first parameter name for all global log functions
Released on 07/02/2019.
- Concurrency crash fix
Released on 06/26/2019.
- Concurrency crash fix
Released on 06/24/2019.
- Intersection check fix
Released on 06/06/2019.
- Restored original log formatting
- Fixed log message when error log doesn't contain any data
Released on 06/05/2019.
- Different message format for file logs to simplify working with them using stream processing
- Removed newLinesSeparation for file logger
Released on 06/05/2019.
- FileLogger to log into files
Released on 06/05/2019.
- Loggers can be configured to log all components, listen to specific components or ignore some of them
- Removed excessive flag param for error logs
Released on 06/04/2019.
- Made parameters for component decision ordinary Strings.
Released on 06/03/2019.
- Log components simple cache
Released on 06/03/2019.
- Removed
logComponents
param from all logs. Log components should be autodetected.
Released on 05/30/2019.
- Swift 5 support
Released on 02/11/2019.
- Initial release of LogsManager.
- Added by Anton Plebanovich.