Public
- Fix build failure due to privacy manifest when using static linking with CocoaPods (#1408)
- Allow custom mapping of
DDLogFlag
to os_log_type_t
, fix default mapping for DDLogFlagWarn
(#1410)
Public
- Extend privacy manifest to fulfill validation criteria (#1403)
- Fix crash when fetching registered classes (#1406)
Public
- Add privacy manifest (#1403)
- Update doc from DDLogLevelWarn to DDLogLevelWarning to match library (#1383)
- Only cleanup files on configuration change if the manager is used by a file logger (#1398)
- Fix #1386 again by adding a missing return and adjusting the preprocessor conditionals
- Fix some C++ warnings
Internal
- Update copyright for 2024 (#1400)
- Improve asserts (#1385)
Public
- App background-mode not correctly detected in app extensions (#1359)
- Fix DDFileLogger rollingFrequency and maximumFileSize not being honored (#1361)
- Fix potential crashes when using the new
DDLogMessageFormat
with messages that contain '%'
- Fix simulator issues when using dynamic registered logging on iOS 17 (#1386)
- Allow
DDFileLogger
to write in different file formats (#1380)
Internal
Public
- Silence double conversion warnings for 32-bit watchOS (#1320)
- Enable ALLOW_TARGET_PLATFORM_SPECIALIZATION (#1321)
- Update to swift-log 1.5.2, implement metadata providers (#1329)
- Preserve
messageFormat
in DDLogMessage
(#1347)
Internal
- Update copyright for 2023
Public
- Add support for Xcode 14 / Swift 5.7 - drop support for Swift < 5.5, iOS/tvOS < 11, macOS < 10.13, watchOS < 4 (#1316)
- Update README about swift-log usage (#1275)
- Use dispatch_walltime for scheduling log file rolling timer (#1309)
Internal
- Add consistent newline to file endings (#1272)
- Fix error checking in DDFileLogger (#1274)
- Avoid using NSString format (#1280)
- Prevent logging to symlink files (#1314)
Public
- Fix swift-tools-version in Package@swift-5.3.swift
Public
- Fix "DDFileLogger: Failed to get offset" when setting maximumFileSize (#1234)
- Follow-up to add annotations to DDOSLogger (#1248)
- Fixed nullability conflict in DDDispatchQueueLogFormatter.h (#1252)
- Add Swift 5.5 support, fix archive build on Xcode 13 (#1253)
- Fix file access issue in Catalyst apps (#1257)
- Fix excluded archs in debug build when not mac catalyst (#1260)
- Bump Xcode last upgraded version to 13.2 (#1265)
- Don't log warnings for CLI apps in DDTTYLogger (#1269)
Public
- Re-introduce (and deprecate)
_tag
field to fix breakage in 3.7.1 (#1224)
Public
- Deprecate
tag
property of DDLogMessage
, use representedObject
instead. (#1177, #532)
- Add per-message synchronous logging control for messages logged via SwiftLog using
DDLogHandler
(#1209)
- Add TargetConditionals import for Xcode 12.5 (#1210)
- Prevent logging an error when archiving an already deleted file (#1212)
- Use inclusive words - denylist / allowlist (#1218)
- Add
DDAssertionFailure
macro for Objective-C (#1220)
Internal
- Use setter to replace kvo for
NSFileLogger
(#1180)
- Use new API for
NSFileHandle
on supported platforms (#1181)
- Remove unnecessary checks in
DDFileLogger
(#1182)
- Add an assertion to avoid potential deadlock issues for
flushLog
(#1183)
Public
- Breaking change: Dropped support for iOS 8 (#1153)
- Update SPM tools-version to 5.3 to enable Swift 5.3 support (#1148)
- Add backend for swift-log (#1164)
- Specify CocoaPods version to ensure
swift_version
attribute works (#1167)
- Simplify
DDLogFileManager
callbacks for archived log files (#1166)
Public
- Fix warnings when building with SPM bundled with Swift 5.2 / Xcode 11.4 (#1132)
- Added Swift name for DDQualityOfServiceName constants.
- Don't localize timestamps in
DDefaultFileLogFormatter
(#1151)
- Allow logging arbitrary objects via Swift log functions (#1146)
Repository
Public
- Improve error handling during log file creation in DDFileLogger & DDLogFileManager (#1103 / #1111)
- Improve nullability annotations in public headers (#1111 / #1112 / #1119)
- Added support for thread QOS in DDLogMessage class (#1124)
Internal
- Fix rolling timer being rescheduled rapidly due to leeway (#1106 / #1107)
- Fix -didArchiveLogFile: returning the file name instead of the file path (#1078)
- Fix setxattr() function usage (#1118)
- Fix NSDateFormatter thread safety (#1121)
- Fix -lt_dataForMessage: duplicated code (#1122)
Public
- Swift Package Manager Support (#1083)
- New
willLogMessage:
and didLogMessage:
methods on DDFileLogger
which provide access to the current log file info.
Internal
- Fix issue with log archiving in the simulator (#1098)
- Limit assertion to non-simulator build (#1100)
Public
- Additional compatibility with Swift 5 (backwards compatible with Swift 4) (#1043)
- Fix warning building with Xcode 10.2 (#1059)
- Set Xcode 10.2 and Swift 5.0 as a default (#1064)
- Fix format string crash (#1066)
Internal
- Fix warning about syntax (#1054) (#1065)
- Remove banned APIs (#1056) (#1057)
- Add CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER & fix warnings (#1059)
- Use LLONG_MAX instead of LONG_LONG_MAX (#1062)
Public
- Fix reusing of log files after rolling (#1042)
- Fix creation of too many log files (#1049)
- Preliminary compatibility with Swift 5 (backwards compatible with Swift 4) (#1044)
- core: loggers os logger variations have been added (#1039)
Internal
- Sync internal queues to prevent cleaning up log files too soon in tests (#1053)
- DDLog checks for NULL values and for global queue dispatching has been added (#1045)
Public
- Fix high CPU usage because of empty fileAttributes and / or too high rollingFrequceny (#1028)
Public
- Added
logFileHeader
property to DDLogFileManagerDefault
. Override to set header for each created file. #998
DDFileLogger
now accepts a dispatch_queue_t
which it uses to run callbacks. If not provided, the default global queue is used. #1003
- Added opt-in buffering to
DDFileLogger
. Call wrapWithBuffer
to create a file logger which buffers. #1001, #1012
- Add
DDAssert
and DDAssertionFailure
functions for Swift #934
- Add
DD_LOG_LEVEL
define (which can be set in GCC_PREPROCESSOR_DEFINITIONS
) for Swift to set default log level (enables stripping for strings that are not logged). #952
- Add
asyncLoggingEnabled
global variable to control asynchronous logging. #1019
Internal
- Prevent memory access errors caused by a failed fetch #944
- Fix common warnings emitted by
-Wall
, -Wconversion
, -Wextra
, etc #943, #931
- Fixes issue that could cause log messages to become interleaved when there are multiple
DDFileLogger
s #985
DispatchQueueFormatter
knows about com.apple.root.default-qos.overcommit
now #932
- Fix thread safety issues in
DDFileLogger
. Makes it a little harder to deadlock in some cases. #986, #1003, #946
- Fix availability checks and memory leak #996
Repository
- Reduce podspec to two subspecs and remove customized modulemap #976
- Add danger support for PR checks #962 - fixes #956
- Merged framework targets + using
xcconfig
+ deployment target iOS 8
and Mac OS 10.10
#959 e97da34
- Documentation update #955
e7414ae
0239196 #933
- Full links to Docs and other resources so they are resolved on external pages (i.e. https://cocoapods.org/pods/CocoaLumberjack)
e9d6971
- Replace
OSAtomic
with stdatomic
in DDDispatchQueueLogFormatter
#957 #958
- Add Stale Bot + configuration #953
- Update to Xcode 10 and Swift 4.2 compiler #950
- Xcode 10 scheme changes #949
- Update incomplete BSD 3-Clause License #942
- Updated to CocoaPods 1.5.3
2d0590f
- Use Xcode 9.4 image for tests #939
- Xcode (schemes) version bumps #938
- Update demo and documentation about CustomLogLevels #1023
- Update README.md #912
- Fixed typo in pull request template #913
- Fix
-Wimplicit-retain-self
warnings #915
- Update memory management in dynamic logging #916
- Xcode 9.3 support #921 #923 #926 #927
- Add extern "C" for Objective-C++ #922
- Add
flush
method to the DDFileLogger
#928
- Fix
DDLogFileManagerDefault
-isLogFile
#909
- Fix locking the main thread #911
- Xcode 9 support and Swift 4 support #890 #893
- Replace
OSSpinLock
with pthread_mutex
#889
- Xcode 9 beta support #874 #873 #884 #883 #882
- Fixed some issues around deleting log files #868 #879
- update 'Use Log Level per Logger' doc #888
- Remove empty asset catalogs so that they don't show up in Open Quickly #877
- Fixed typo in pull request template #880
- Xcode 8.3 support #860 #853
- added a very basic
os_log
(unified logging) logger #850 #856
- Use
NSFileProtectionType
instead of NSString
#866
- Optimized timestamp calculation in
DDTTYLogger
#851
- Updated docs #864
- Fix Travis #863
- Fixed nullability of
DDLogMessage.function
#849 DDExtractFileNameWithoutExtension
#845
- Ignore
Carthage/Build
directory #862
- Updated schemes #859 #857
- Swift 3.0.1 and Xcode 8.1 support via #816
- Fix Carthage build and updated the podspec structure #819 #818 #784 #790 #782 #778 #815
- Fix CLIColor.h not included in umbrella header #781 #796 #813 #783
- Fix crash in
[DDLog log:level:flag:context:file:function:line:tag:format:]
#831 #830
- Code improvements:
- using class properties #779
- nullability #803 #809 #776
- fix static analyzer issues #822 #828
- optimized
USE_DISPATCH_CURRENT_QUEUE_LABEL
and USE_DISPATCH_GET_CURRENT_QUEUE
macros #829
- fixed dispatch_source_set_timer() usage #834
- fixed misuse of non null parameter in
DDFileLogger fileAttributes
#835
- store calendar in logger queue specifics for multi-thread safety #837
- reenable default
init
method for DDLogMessage
class #838
- Added option to not copy messages #832
- Added new hooks when adding loggers and formatters #836
- Ability to create new log files every day #736
- Skip messages in ASL logger which are filtered out by the formatter #786 #742
- Fixed #823 by adding a
hash
implementation for DDFileLogger
- same as isEqual
, it only considers the filePath
7ceed08
- Fix Travis CI build #807
- Updated docs #798 #808 #811 #810 #820
- Swift 2.3 explicit so that the project compiles on Xcode 8 - #747 #773 fix #762 #763 #766
- CocoaPods 1.0.0 fully adopted -
0f5a793
637dfc1
70439fe
#729
- Fix CLIColor.h not found for non-AppKit binaries w/o clang modules #745
- Retrieve the
DDLogLevel
of each logger associated to DDLog
#753
- updated doc: #727
a9f54c9
#741, diagrams in 8bd128d
- Added CONTRIBUTING, ISSUE and PULL_REQUEST TEMPLATE and added a small Communication section to the Readme
- Fixed an issue with one demo #760
- Updated to Swift 2.2 - #704
- replaced deprecated
__FUNCTION__
, __FILE__
, __LINE__
with newly added to Swift 2.2: #function
, #file
, #line
- Xcode 7.3 update - #692 #662
- simplify usage and integration of the static library target - #657
- DDLog usable via instances - #679
- Swift cleanup - #649
- Enable Application extension API only for tvOS - #701
- Added
appletvos
and appletvsimulator
to SUPPORTED_PLATFORMS
and set TVOS_DEPLOYMENT_TARGET
- #707
- fixed
OSSpinLock
init issue - #653
- Added check to prevent duplicate loggers - #682
- fixed typo in import - #693
- updated the docs - #646 #650 #656 #655 #661 #664 #667 #684 #724
- Fixed the version for the Carthage builds - see #633
- Improved documentation
- Refactored the
NSDateFormatter
related code to fix a bunch of issues: #621
- Fix Issue #488: Support
DDLog
without AppKit Dependency
(#define DD_CLI
): #627
- Re-add
NS_DESIGNATED_INITIALIZER
#619
- Compatibility with Xcode 6 that was broken by the 2.0.2 patch - f042fd3
- Swift 1.2 fixes #546 #578 plus and update to Swift 2.0 5627dff imported from our swift_2.0 branch
- Make build work on
tvOS
#597
- Make
CocoaLumberjackSwift-iOS
target depends on CocoaLumberjack-iOS
#575
APPLICATION_EXTENSION_API_ONLY
to YES
for Extensions #576
- Remove unnecessary
NS_DESIGNATED_INITIALIZER
s #593 fixes #592
- Add ignore warning mark for
DDMakeColor
#553
- Kill unused function warnings from
DDTTYLogger.h
#613
- Flag unused parameters as being unused to silence strict warnings #566
- Extend ignore unused warning pragma to cover all platforms #559
- Removed images.xcassets from Mobile project #580
- Silence the Xcode 7 upgrade check - #595
- Fix import for when CL framework files are manually imported into project #560
- Don't override defines in case they're already set at project level #551
- log full filepath when failing to set attribute #550
- Fix issue in standalone build with
DDLegacyMacros.h
#552
- Update
CustomFormatters.md
with proper thread-safe blurb #555
- typo in parameter's variable name fixed #568
- Typo: minor fix #571
- Surely we should be adding 1, not 0 for
OSAtomicAdd32
? #587
rollLogFileWithCompletionBlock
calls back on background queue instead of main queue #589
- Removing extraneous
\
on line 55 #600
- Updated
GettingStarted.md
to include ddLogLevel
#602
- Remove redundant check for
processorCount
availability #604
- Carthage support #521 #526
- fixed crash on
DDASLLogCapture
when TIME
or TIME_NSEC
is NULL
#484
- Swift fixes and improvements: #483 #509 #518 #522 5eafceb
- Unit tests: #500 #498 #499
- Fix #478 by reverting #473
- Add
armv7s
to static library #538
- Fix
NSLog
threadid
mismatch with iOS 8+/OSX 10.10+ #514
- Fixed the
LogV
macros so that avalist is no longer undefined #511
- Using type safe
DDColor
alias instead of #define directive #506
- Several fixes/tweaks to
DDASLLogCapture
#512
- Prevent duplicate log entries when both
DDASLLogCapture
and DDASLLogger
are used #515
- Fix memory leaks in
DDTTYLogger
, add self annotations to blocks #536
- Update older syntax to modern subscripting for array access #482
- Remove execute permission on non-executable files #517
- Change code samples to use
DDLogFlagWarning
#520
- Fix seemingly obvious typo in the
toLogLevel
function #508
The library was strongly refactored, with a few goals in mind:
- Swift support - that we will release in a separate milestone, since CocoaPods 0.36.0 just got out
- Unit tests support
- reorganised things (on disk)
- better coding style
See Migration from 1.x to 2.x
- Bucket of Swift improvements - #434 #437 #449 #440
- Fixed #433 (build issue due to dispatch_queue properties) - #455
- Enable codesign for iOS device framework builds - #444
- Declare
automaticallyAppendNewlineForCustomFormatters
properties as nonatomic
- #443
- Warning fixes & type standardization - #419
- Legacy checks updated - #424
- Documentation updates
- Fix
dispatch_queue_t
properties.
- Fix
registeredClasses
crashes at launch.
- Major refactoring and clean up.
- Remove superfluous
log
from property names and use underscore for direct variable access.
- Preliminary Swift support through
CocoaLumberjack.swift
.
- Automatic 1.9.x legacy support when
DDLog.h
is imported instead of the new CocoaLumberjack.h
.
- Modernize flag variables to be
NS_OPTIONS
/NS_ENUM
.
- Change the log flags and levels to
NSUInteger
.
- Fix warning when compiled with assertions blocked.
- Crash fixes.
- Cleanup code.
- Match
NSLog
read UID functionality in DDASLLogger
.
- Update framework and static libraries.
See Migrate from 1.x to 2.x
- Fixed
NSCalendar components:fromDate:
crash - #140 #307 #216
- New
DDAssert
macros - #306
- Limit log growth by disk space only, not the number of files - #195 #303
- Change the mechanism for adding new line character (i.e. '\n) to log messages in some logger - #308 #310
- Fixed deprecations - #320 #312 #317
aslmsg
not freed and causing memory leak - #314
- Fixed
CompressingLogFileManager
compression bug - #315
- Remove unnecessary
NULL
check before free()
- #316
- Fixed issues in rolling frequency - #243 #295 @georgekola
- Fixed critical issue,
addLogger
method should use a full bit mask instead of LOG_LEVEL_VERBOSE
, otherwise extended logs or extra flags are ignored fe6824c @robbiehanson
- Performance optimisation: use compiler macros to skip iOS version checks - 4656d3b #298 #291 @robbiehanson @liviur
- Changed the
Build Active Architecture Only
to NO
#294 #293
- Optimisation by reusing
NSDateFormatter
instances #296 #301
- New ASL capture module #242 #263
- Override default
NSFileProtection
handling #285
- Replaced warnings when ARC was not enabled with errors #284
- Fix for issue #278 where really large log files can keep growing #280
- Fixed Xcode warnings #279
- Update
calendarUnitFlags
with new iOS SDK values #277
- Fix possible crash in
[NSCalendar components:fromDate:]
#277
- Fix #262 inverted ifs when renaming log #264
- Proper way of doing singletons (via
dispatch_once
) #259
- Explicitly declare
DDFileLogger
and DDDispatchQueueLogFormatter
properties as atomic to avoid Xcode warnings #258
- Set
NSFileProtectionKey
on the temporary file created during compression #256
- Fix a rare crash in
CompressingLogFileManager
caused by an unchecked result from read #255
- Add explicit casts for integer conversion #253
- Replace use of
NSThread.detachNewThreadSelector
#251
- Add a constructor override for
initWithLogsDirectory:
#252
- Check and log the streamError whenever we fail to write during compression and log any failures when removing the original file or cleaning up the temporary file after compression failed #250
- Following Apple's guidelines for iOS Static Libraries #249
- Some extra warnings for the mobile framework xcode project a2e5666
- Update
FineGrainedLoggingAppDelegate.m
#244
- New
[DDLog log:message:]
primitive 7f8af2e
- Fixed issue #181 when logging messages in iOS7 devices aren't properly retrieved by
asl_search
#240
- Allow prevention of log file reuse #238
DDTTYLogger
: Favour XcodeColors environment variable #237
DDLog
: calling atexit_b
in CLI applications, that use Foundation framework #234
- read access to all loggers - #217 #219
- fixed bug with archived logs not being handled correctly on iOS simulator - #218
- log the
strerror(errno)
value when setxattr()
fails - #211
- Add a check for an archived log before overwriting - #214
- improved safety by using assertions instead of comments (
DDLog
in the core) - #221
- added Lumberjack logo :)
DDFileLogger
custom logfile (name) format - #208
- Security static analysis fix - #202
DDFileLogger
: using CFBundleIdentifier
as a log filename prefix on OSX and iOS - #206
- Allow disabling of specific levels per-logger - #204
- Improve support for OS X command line tools - #194
DDFileLogger
: fixed crash that occurred in case if application name == nil - #198
DDFileLogger
: fixed comment - #199
- Fix Travis - #205
- new log file naming convention - #191
- completed transition to CocoaLumberjack organisation - #188
- fixed compatibility with Xcode 4.4+ #187
DDFileLogger
refactoring and fixes (thanks @dvor and @an0):
- Fixed #63 Loggers don't flush in Command Line Tool #184
- Fixed #52 Force log rotation #183
- Fixed #55 After deleting log file or log dir they aren't created again without relaunching the app #183
- Fixed #129 [iOS]
DDFileLogger
causes crash when logging from background app #183
- Fixed #153 Log file on iPhone only contains a single line #177
- Fixed #155 How do I combine all my log levels into one file? #177
- Fixed #175
DFileLogger
creationDate
bug on 64-bit iOS system #177
- Allow customizing the naming convention for log files to use timestamps #174
Other:
- Implemented multiple formatter (
DDMultiFormatter
- alows chaining of formatters) #178
- Added DD prefix to extension classes (
ContextFilterLogFormatter
and DispatchQueueLogFormatter
) #178
- Updated code indentation: Tabs changed to spaces #180
- Included
DDLog+LOGV.h
in Cocoapods sources d253bd7
- other fixes/improvements
- "Fix" conflicts with 3rd party libraries using
CocoaLumberjack
#172
- Ignore deprecated warning for
dispatch_get_current_queue
#167
- Add new
DEBUG
log level support to included loggers #166
- Method declarations that make it easier to extend/modify
DispatchQueueLogFormatter
#164
- Add
LOGV
-style macros #161
- Fix getting queue's label #159
- New log level
DEBUG
#145
- Use
DISPATCH_CURRENT_QUEUE_LABEL
if available #159
- Different
logLevel
per each logger #151
- Created 2 subspecs,
Core
and Extensions
#152
- Updated observer for keypath using
NSStringFromSelector
+ @selector
38e5da3
- Replaced
id
return type with instancetype
ebee454
- Remove implicit conversion warnings #149
DDTTYLogger
: Allow to set default color profiles for all contexts at once #146 #158
DDTTYLogger
: By default apply setForegroundColor:backgroundColor:forFlag:
to LOG_CONTEXT_ALL
#154
DispatchQueueLogFormatter
: Use modern Objective-C #142
DispatchQueueLogFormatter
: Make sure to always use a NSGregorianCalendar
for date formatter #142
- Replaced explicit reference to class name in
logFileWithPath
factory method #131
- Catch exceptions in
logMessage:
#130
- Fix enum type conversion warnings #124
- Add deployment target condition for workaround #121
- Fix static analyzer warnings about
nil
values in dictionary #122
- Fix
dispatch_get_current_queue
crash #121
- Fixing colors in greyscale color-space not working d019cfd
- Guard around
dispatch_resume()
being called with null pointer #107
NULL
safety checks #107